java继承问题

package jav10;
class Egg{
private Yolk y;
protected class Yolk{
public Yolk() {System.out.println("egg.yolk()");}

}
public Egg(){
System.out.println("new egg ()");
y =new Yolk();
}
}
public class BigEgg extends Egg{

public static void main(String[] args){
new BigEgg();
}

}

为什么输出是
new egg ()
egg.yolk()
为什么只调用Egg方法而没先调用 Yolk方法先输出egg.yolk()呢

new BigEgg();
--------
先调用System.out.print、再调用构造public Egg(){
------------

y =new Yolk();也是 调用System.out.println

于是输出了
new egg ()
egg.yolk()追问

我的意思是public class BigEgg extends Egg他不是继承的Egg类么 但是为什么只调用的之中的Egg方法却没调用Yolk方法

追答

默认调用父类的构造(无参数)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-01

这是由java中构造方法的执行机制决定的,可以参照这个帖子:

http://blog.csdn.net/zhangkaihang/article/details/7535489


相似回答