次のプログラムの出力を説明できる人はいますか? コンストラクターはインスタンス変数の前に初期化されると思いました。したがって、出力が「XZYY」になると予想していました。
class X {
Y b = new Y();
X() {
System.out.print("X");
}
}
class Y {
Y() {
System.out.print("Y");
}
}
public class Z extends X {
Y y = new Y();
Z() {
System.out.print("Z");
}
public static void main(String[] args) {
new Z();
}
}