- package cn.heima;
- class X
- {
- Y b = new Y();//第3步,先初始化类中的成员变量
- X()//第5步,调用构造方法,打印了X
- {
- System.out.print("X");
- }
- }
- class Y
- {
- Y()
- {
- System.out.print("Y");//第4步,被new X()调用,打印了Y //第7步,被new Z()调用,打印了Y
- }
- }
- public class Z extends X
- {
- Y y = new Y();//第6步,调用super()结束后,初始化本类变量
- Z()
- {
- System.out.print("Z");//第8步,执行构造方法,打印了Z
- }
- public static void main(String[] args)//第1步,main函数入口
- {
- new Z();//第2步,初始化 Z 对象,调用父类构造方法
- }
- }
复制代码 所以输出结果是:YXYZ |