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");
}
}
Таким образом, нельзя "переопределить" конструктор, но можно определить свой собственный с нужным поведением.