对继承加深理解的一个小练习
程序员文章站
2024-03-23 20:27:28
...
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() {
// super(); //这里加不加super对结果没有影响,子类父类的初始化遵循先父类初始化再子类初始化,在使用super之前就已经完成这一步了,加不加上super对结果没有影响
System.out.print("Z");
}
}
class A{
public static void main(String[] args) {
new Z();
}
}
1、首先进入主函数,发现new了一个Z出来。
2、发现Z是继承与X,就进入X
3、进入X之后,发现里面new了一个Y出来,就进入Y
4、进入了Y,发现是一个构造函数,就输出构造函数里的内容,输出Y
5、回到了class X,到了构造函数X,输出X
6、这时候Z已经继承完X了,就回到了Z
7、到了Z中,发现第一条语句是new了一个Y出来,就到了Y,输出Y
8、回到Z,最后输出Z
9、结果就是YXYZ
感谢阅读,我是啊帅和和,一位大数据专业即将大四学生,祝你快乐。