java-interview icon indicating copy to clipboard operation
java-interview copied to clipboard

Каков порядок вызова конструкторов и блоков инициализации с учётом иерархии классов?

Open Niro opened this issue 4 years ago • 0 comments

Необходимо поменять вопрос или ответ на него, либо добавить пояснение. Если спрашиваем про порядок вызова, то сначала вызывается конструктор самого младшего и далее выше по иерархии, но выполняются они в том порядке, какой написан в ответе. В дебагере порядок вызова виден.

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("На самом деле вызываются от");
    }
}
Screenshot 2021-04-19 at 20 57 21

Niro avatar Apr 19 '21 18:04 Niro