Junior — Middle
Може ли да се креира сопствено понашање за конструктор у наслеђеној класи, преоптерећујући га?
sobes.tech АИ
Одговор од АИ
В Java конструкторы не наследуются и не могут быть переопределены в классах-наследниках. Каждый класс должен явно объявлять свои конструкторы. При создании объекта подкласса сначала вызывается конструктор суперкласса (явно через super() или неявно), а затем выполняется тело конструктора подкласса.
Если нужно изменить поведение конструктора в наследуемом классе, нужно определить новый конструктор в подклассе, который может вызывать конструктор суперкласса и добавлять свою логику:
class Parent {
Parent() {
System.out.println("Parent constructor");
}
}
class Child extends Parent {
Child() {
super(); // вызов конструктора родителя
System.out.println("Child constructor");
}
}
Таким образом, нельзя "переопределить" конструктор, но можно определить свой собственный с нужным поведением.