Sobes.tech
Назад к вопросам
Junior — Middle
54

Обязательно ли при создании дочернего класса требуется вызов конструктора его базового класса?

Ответ от нейросети

sobes.tech AI

В Java при создании дочернего класса вызов конструктора базового класса обязателен, но он может быть неявным. Если в конструкторе дочернего класса явно не вызвать конструктор суперкласса через super(), компилятор автоматически вставит вызов без аргументов к конструктору базового класса. Однако если у базового класса нет конструктора без параметров, то вызов конструктора базового класса должен быть сделан явно с нужными аргументами.

Пример:

class Base {
    Base(int x) { }
}

class Derived extends Base {
    Derived() {
        super(10); // обязательный вызов конструктора базового класса с параметром
    }
}

Если базовый класс имеет конструктор без параметров, то вызов super() вставится автоматически, и писать его явно необязательно.