Понимание необходимости использования super() в конструкторах подклассов
При создании подклассов в Java возникает вопрос, используется ли super() вызов метода является обязательным в конструкторе подкласса. Эта статья углубляется в эту тему, внося ясность в следующие аспекты:
Автоматическая вставка super() компилятором
Краткий ответ на этот вопрос — нет. Компилятор не вставляет автоматически вызов super() в конструктор подкласса, если он не указан явно. Таким образом, конструктор подкласса всегда должен указывать конструктор суперкласса, который он намеревается вызвать.
Отсутствие эквивалентов конструктора без аргументов
Важно понимать, что не помещать вызов super() в конструкторе подкласса не означает, что компилятор вставит эквивалентный конструктор без аргументов. Если у суперкласса нет доступного конструктора без аргументов, пропуск вызова super() приведет к ошибке компиляции.
Вызов конструктора при наличии аргументов
Рассмотрим конструктор подкласса с аргументами. В этом случае вызов super() необходим для указания того, какой конструктор суперкласса вызывать. Вызываемый конструктор суперкласса в первую очередь определяется фактическими аргументами, передаваемыми конструктору подкласса. Если в вызове super() не указан список аргументов, он вызовет конструктор суперкласса, который соответствует порядку и типам аргументов конструкции подкласса.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3