欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

对继承加深理解的一个小练习

程序员文章站 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

感谢阅读,我是啊帅和和,一位大数据专业即将大四学生,祝你快乐。