java内部类的继承_Java内部类继承问题

程序代码如下:classEgg2{protectedclassYolk{publicYolk(){System.out.println("Egg2.Yolk()");}publicvoidf(){System.out.println("Egg.Yolk.f()");}}privateYolky=newYolk();publi...

程序代码如下:

class Egg2{

protected class Yolk{

public Yolk(){System.out.println("Egg2.Yolk()");}

public void f(){System.out.println("Egg.Yolk.f()");}

}

private Yolk y=new Yolk();

public Egg2(){System.out.println("New Egg2");}

public void insertYolk(Yolk yy){y=yy;}

public void g(){y.f();}

}

public class BigEgg2 extends Egg2{

public class Yolk extends Egg2.Yolk{

public Yolk(){System.out.println("BigEgg2.Yolk()");}

public void f(){System.out.println("BigEgg2.Yolk.f()");}

}

public BigEgg2(){insertYolk(new Yolk());}

public static void main(String[] args){

Egg2 e2=new BigEgg2();

e2.g();

}

}

输出结果如下:

Egg2.Yolk()

New Egg2

Egg2.Yolk()

BigEgg2.Yolk()

BigEgg2.Yolk.f()

疑问:

在main()函数中首先执行new BigEgg2()语句,那么应该首先调用类BigEgg2基类Egg2的构造函数Egg2()从而首先打印出“New Egg2”,但是实际执行情况却是首先打印出“Egg2.Yolk()”,两次打印出的“Egg2.Yolk()”分别是程序执行那条语句打印出来的,请告知,小弟初学者!万分感谢!

同理,若类B继承自类A(A为基类),同时类A又包含一个普通的内部类C,类B包含一个普通的内部类D,调用new B()语句,构造器的执行顺序是什么?

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值