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() {
System.out.print("Z");
}
public static void main(String[] args) {
new Z();
}
}不理解为什么结果输出是YXYZ ,求大神解答一下运行步骤
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() {
System.out.print("Z");
}
public static void main(String[] args) {
new Z();
}
}不理解为什么结果输出是YXYZ ,求大神解答一下运行步骤
解决方案 »
- document.getElementById与lhgdialog.js冲突,导致JS错误!
- 验证哥德巴赫猜想,无法输入偶数验证。求帮助。
- 关于Java打包后读取文件的问题
- 请问一个JAVA反射的问题,现在我知道一个需要建立对象的类名字(String),如何动态建立这个类的对象?
- 在简单不过的问题了,气死我了
- *******高手请问: 如何在自己的方法内 画图????*****哪位高手知道
- 访问网络文件的一个问题
- 请问:怎样将一个十进制的byte型变量转换成十六进制的byte型变量?
- 谁能简单的帮我解释一下这个小程序
- java编写域名批量解析工具疑问,求解
- java学习中碰到的 疑难杂症!!!!
- 比特币 java 报错java.net.SocketException: Unexpected end of file from server
1、调用X中的Y b = new Y();调用Y构造器输出Y
2、调用X(),输出X
3、调用Z中的Y y = new Y(); ,调用Y构造器输出Y
4、调用Z(),输出Z
public class Z {
Y b = new Y();
----------------------------------输出y
X() {
System.out.print("X");
}
----------------------------------输出x
Y y = new Y();
----------------------------------输出y
Z() {
System.out.print("Z");
}
----------------------------------输出z
创建z实例时,顺序:
1:加载父类X,初始化成员y。(如有静态会优先静态) 。打印Y
2:X构造器初始化。打印X
3:加载Z类,初始化成员y,打印Y。
4:Z类构造器初始化,打印Z。
所以是YXYZ。记住初始化顺序是
静态~其他成员~构造器。
有静态时情况特殊,建议你试一下就明白了。
注:本人非