对象的创建
我对一段程序的运行结果有疑问。class A
{
A()
{System.out.println("A");
}
}
class B
{
B()
{
System.out.println("B");
}
}
class C extends A
{
B c=new B();
}
class Abc{
public static void main(String[] args)
{
C a=new C();
}
}
{
A()
{System.out.println("A");
}
}
class B
{
B()
{
System.out.println("B");
}
}
class C extends A
{
B c=new B();
}
class Abc{
public static void main(String[] args)
{
C a=new C();
}
}
运行结果是 A
B
按照对象创建的顺序,不是应该先分配变量再执行构造方法的方法体吗?
但是根据上面的结果,生成C的对象时,是先执行C的构造方法(里面有默认有super()),再给成员变量c创建初值。
象这种情况,如果一个类的成员变量是对象并且有初值,这个初值是什么时候给它的呢?
[此贴子已经被作者于2007-7-22 18:23:36编辑过]