Back to questions
Junior — Middle
55
Обязательно ли при создании дочернего класса требуется вызов конструктора его базового класса?
Answer from AI
sobes.tech AI
В Java при создании дочернего класса вызов конструктора базового класса обязателен, но он может быть неявным. Если в конструкторе дочернего класса явно не вызвать конструктор суперкласса через super(), компилятор автоматически вставит вызов без аргументов к конструктору базового класса. Однако если у базового класса нет конструктора без параметров, то вызов конструктора базового класса должен быть сделан явно с нужными аргументами.
Пример:
class Base {
Base(int x) { }
}
class Derived extends Base {
Derived() {
super(10); // обязательный вызов конструктора базового класса с параметром
}
}
Если базовый класс имеет конструктор без параметров, то вызов super() вставится автоматически, и писать его явно необязательно.