谁能解释以下程序的输出?我认为构造函数要在实例变量之前初始化。因此,我期望输出为“ 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(); } }
正确的初始化顺序是: