关于内部类的继承
class Egg2{
protected class Yolk{
public Yolk(){System.out.println( "egg2.yolk() ");}
public void f(){System.out.println( "egg2.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是BigEgg2型,那么Egg2的向上转型岂不是没有意义?
e2.g();
}
}
------解决方案--------------------晕,程序不能规范一下吗?
------解决方案--------------------这句话的初始化究竟是怎样的,e2是BigEgg2型,那么Egg2的向上转型岂不是没有意义?
一般回先调用其super的构造器。关于具体的原因你可以看thinking in java