本帖最后由 皮卫凯 于 2012-9-20 18:14 编辑
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();
}
}
读程序的步骤:
主函数 new Z()
创建Z类对象,则执行Z
因为class Z extends X
则 执行class X
{ Y b = new Y(); //读到这,建立Y类对象,则要执行了Y类,则打印Y
X() { System.out.print("X"); } //这里则执行了X类,则打印X
}
执行完父类X后,再执行Z类
{
Y y = new Y(); //这里则又要去执行Y类,打印Y
Z() {
System.out.print("Z"); //这打印Z
}
}
所以 打印结果为YXYZ |