Java编译执行顺序

打印出来:怎么执行出来的啊
2025-01-06 01:59:03
推荐回答(2个)
回答1:

1、class X 中Y先执行,输出Y
2、X的构造方法执行 ,输出X
3、Z 的实例化Y执行,输出Y
4、Z的构造方法执行 ,输出Z
成员变量先于构造方法,子类实例化时会先调用 父类的构造方法
其实,你给Y加一个 Y(String index){
System.out.println("Y "+index);
}
再改成 Y b= new Y("b");
Y y= new Y("Y")
就很容易看出来了

回答2:

当你执行 new Z();时,
先加载父类X,
X的加载顺序,先加载初始化部分,也就是Y b = new Y();打印Y
然后执行X的构造函数,打印出X。
然后加载子类初始化部分,也就是Y y = new Y();打印Y
最后执行子类构造函数,打印出Z