Junior — Middle
Is het verplicht om de constructor van de basisklasse aan te roepen bij het maken van een afgeleide klasse?
sobes.tech AI
Antwoord van AI
В Java при создании дочернего класса вызов конструктора базового класса обязателен, но он может быть неявным. Если в конструкторе дочернего класса явно не вызвать конструктор суперкласса через super(), компилятор автоматически вставит вызов без аргументов к конструктору базового класса. Однако если у базового класса нет конструктора без параметров, то вызов конструктора базового класса должен быть сделан явно с нужными аргументами.
Пример:
class Base {
Base(int x) { }
}
class Derived extends Base {
Derived() {
super(10); // обязательный вызов конструктора базового класса с параметром
}
}
Если базовый класс имеет конструктор без параметров, то вызов super() вставится автоматически, и писать его явно необязательно.