Sobes.tech
Back to questions
Junior — Middle
75

Можно ли создавать собственное поведение для конструктора в наследуемом классе, переопределяя его?

Answer from AI

sobes.tech AI

В Java конструкторы не наследуются и не могут быть переопределены в классах-наследниках. Каждый класс должен явно объявлять свои конструкторы. При создании объекта подкласса сначала вызывается конструктор суперкласса (явно через super() или неявно), а затем выполняется тело конструктора подкласса.

Если нужно изменить поведение конструктора в наследуемом классе, нужно определить новый конструктор в подклассе, который может вызывать конструктор суперкласса и добавлять свою логику:

class Parent {
    Parent() {
        System.out.println("Parent constructor");
    }
}

class Child extends Parent {
    Child() {
        super(); // вызов конструктора родителя
        System.out.println("Child constructor");
    }
}

Таким образом, нельзя "переопределить" конструктор, но можно определить свой собственный с нужным поведением.