Java基础题:子类和父类的初始化流程
本题答案:C
初始化过程:
- 初始化父类中的静态成员变量和静态代码块 ;
- 初始化子类中的静态成员变量和静态代码块 ;
- 初始化父类的普通成员变量和代码块,再执行父类的构造方法;
- 初始化子类的普通成员变量和代码块,再执行子类的构造方法;
(1)初始化父类的普通成员变量和代码块,执行 Y y=new Y(); 输出Y
(2)再执行父类的构造方法;输出X
(3) 初始化子类的普通成员变量和代码块,执行 Y y=new Y(); 输出Y
(4)再执行子类的构造方法;输出Z
所以输出YXYZ
初始化步骤:
1.父类静态变量 本题无
2.父类静态代码块 本题无
3.子类静态变量 本题无
4.子类静态代码块 本题无
5.父类非静态变量 输出“y”
6.父类非静态代码块 本题无
7.父类构造函数 输出“x”
8.子类非静态变量 输出“y”
9.子类非静态代码块 本题无
10.子类构造函数 输出“z”
所以输出:yxyz
链接:https://www.nowcoder.com/questionTerminal/27a89bce14c242d1a4161fbeca2b6b7e
来源:牛客网