java-interview
java-interview copied to clipboard
Каков порядок вызова конструкторов и блоков инициализации с учётом иерархии классов?
Необходимо поменять вопрос или ответ на него, либо добавить пояснение. Если спрашиваем про порядок вызова, то сначала вызывается конструктор самого младшего и далее выше по иерархии, но выполняются они в том порядке, какой написан в ответе. В дебагере порядок вызова виден.
public class A extends B {
public A() {
super("From A");
System.out.println(", но выполняются от самого старшего к самому младшему");
}
}
public class B extends C {
public B(String param) {
super("From B");
System.out.print(" самого младшего к самому старшему");
}
}
public class C {
public C(String param) {
System.out.print("На самом деле вызываются от");
}
}