Я очень растерялся с конструкциями Overriding Construct. Конструктор не может быть отменено, является результатом того, что я получаю, когда я искал его в гугле мой вопросПерестраивающие конструкторы
public class constructorOverridden {
public static void main(String args[]) {
Sub sub = new Sub();
sub.test();
}
}
class Super {
Super() {
System.out.println("In Super constructor");
test();
}
void test() {
System.out.println("In Super.test()");
}
}
class Sub extends Super {
Sub() {
System.out.println("In Sub constructor");
}
void test() { // overrides test() in Super
System.out.println("In Sub.test()");
}
}
, когда я запускаю это я получил результат как
In Super constructor
In Sub.test()
In Sub constructor
In Sub.test()
пожалуйста, обратите внимание на метод испытания в подклассе выполняется. Это показывает, что конструктор Суперкласса переопределен. Правильно ли это?
Затем, какой подход следует использовать, избегая «вызова переопределенных методов в конструкторах»? То, что я пытаюсь выполнить, - это базовый поток в суперклассическом конструкторе, вызывающий абстрактные методы init(), build(), затем fill(). Таким образом, все подкласс должны пройти один и тот же поток! – Akshat
@Akshat: Ну, похоже, что это относится к категории «документ очень четко». Обычно есть несколько способов разработки вокруг этого, но трудно дать общий рецепт. –
Если бы вы могли просто дать ссылку на эти способы, это было бы здорово! – Akshat