Классы и конструкторы
Конструкторы и ключевое слово super
В отличие от полей и методов конструкторы базового класса не наследуются. Если базовый класс явным образом определяет конструктор (конструктор по умолчанию не учитывается), то его необходимо вызвать в классе-наследнике при определении конструктора:
Здесь базовый класс Person определяет конструктор, который принимает один параметр. В производном классе Employee также определяется конструктор, который вызывает конструктор базового класса, передавая ему значение параметра name. Для обращения к функциональности базового класса из производного применяется ключевое слово super. В частности, вызов super(name)
фактически будет представлять обращение к конструктору базового класса Person(name)
.
Если мы не вызовем конструктор базового класса при определении конструктора в производном классе, то мы столкнемся с ошибкой.
Подобным образом можно переопределять и обращаться к именованным конструкторам базового класса:
Last updated