黑马程序员技术交流社区
标题:
一个关于子父类继承的问题
[打印本页]
作者:
li2622480
时间:
2015-12-9 14:03
标题:
一个关于子父类继承的问题
class X{
Y y=new Y();
public X(){
System.out.print("X");
}
}
class Y{
public Y(){
System.out.print("Y");
}
}
public class Z extends X{
Y y=new Y();
public Z(){
System.out.print("Z");
}
public static void main(String[] args) {
new Z();
}
}
大家帮忙看看这个题是什么答案,学得不扎实,不会做了。
作者:
李永佳
时间:
2015-12-9 15:19
答案是YYXZ
作者:
cc3441251
时间:
2015-12-9 15:56
1,new Z();会先去看它的构造方法, 但是它的构造方法第一行是有一个隐式的super(),所以回去访问父类classX,而父类的属性会先初始化,所以Y y=new Y();会执行,所以先输出Y;
2,父类成员初始化完成后,会执行父类的构造函数,所以第二输出X;
3,父类初始化完成后,回来执行本类的成员变量初始化Y y=new Y(),所以会输出Y
4,执行本类构造函数,输出Z
所以应该是YXYZ 我也不太确定是这样,请楼下大神继续指正
作者:
wei_john
时间:
2015-12-9 17:31
口诀:父静子静,父构子构
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2