package scjp;
class X
{
Y b = new Y();
X()
{
System.out.print("X");
}
}
class Y
{
Y()
{
System.out.print("Y");
}
}
public class Demo65 extends X{
Y y = new Y();
Demo65()
{
System.out.print("Z");
}
public static void main(String[] args)
{
System.out.println("Begin");
new Demo65();
}
}
执行结果:YXYZ
分析:
1. new Demo65();
1.2. Demo65的超类是X,所以 new X()
1.2.1 X没有超类所以直接实例化X成员变量 Y y=new Y() console打印 Y
1.2.2 然后执行X的构造函数 cosole打印X
1.3 实例化Demo65的成员变量 Y y=new Y() cosole 打印 Y
1.4 执行构造函数 打印 Y
总结: 实例化一个类首先实例化它继承的类,然后初始化它的变量,然后执行构造函数内容.