Z() {
System.out.println("Z");//第四步
}
public static void main(String args[]) {
new Z();
}
}
class X {
Y y = new Y();//第一步
X() {
System.out.println("X");//第二步
}
}
class Y {
Y() {
System.out.println("Y");
}
}
复制代码
解释:在main方法中创建Z类的实例,首先调用父类的构造函数,创建父类对象,
构造函数是创建对象的途径,在执行构造函数体之前先初始化对象的成员变量。
所以在创建父类对象的时,先执行父类对象的成员变量Y y = new Y();然后在执行构造体,执行完父类的构造体后,
执行Z类对象的成员变量,然后在执行Z类中的构造函数体。
所以打印的结果是YXYZ