a.super()?
这种问题要基础吗?
个人认为又一个编译器就可以了。

解决方案 »

  1.   

    public class C extends A.B{//??????????笔误
      

  2.   

    程序没错,a.super()也没错,调用父类的构造方法
    结果是:
    A构造
    B构造
    C构造
      

  3.   

    我?
    你猜错了。
    因为个人认为基础不好所以正在重头看think in java呢。
    不过你的这个问题,我确实不知道。
    我只看到a.super()觉得有问题就说了。
      

  4.   

    A构造
    B构造
    C构造
    ================
      

  5.   

    而且,我绝对不玩cool,我还在学习呢,没资格。我还在看thinking in java,中间边看边写,有点心得就写个题,上次的(昨天)有几个人说好,希望再来点,我今天看书又有点想法,就写了这个,没有玩cool
      

  6.   

    我想我明白楼主的意思了:
    如果总是一切依靠编译器,就根本写不出上述这么精简的例子.这个实例要基本功才行呀从语法来讲,我想很多人和我一样不明白a.super()这个方法是干什么用的,我想这个也不重要重要的是:
    C在构造自己的时候用a 对象作为参数,而这个时候B 和A 都要构造一下.完后,如果实例,那么C再构造一下.看起来这个程序没有问题>
    请问答案是什么??
      

  7.   

    答案就是
    A构造
    B构造
    C构造a.super();是必须的,从内部类继承的子类的构造方法必须这样调用父类的封装类
      

  8.   

    因为c的父类b是a的内部类所以要a.super()保证b的构造否则new c的时候会因为父类得不到构造而失败的。就是一个关于继承内部类的问题吧。
      

  9.   

    楼上说的精辟这个SUPER是个关键没他可不行:0
      

  10.   

    bluesmile979(笑着) ,还是有点不太明白。
    不过楼主出的这道题很经典,打算出书?俺买哦~~~~~~~~基础是不太牢,需要补补。
      

  11.   

    小舟开玩笑,我还在看thinking in java的第7章呢,出小人书画画人可以考虑 :)
      

  12.   

    今天长见识了,谢谢楼主的题和楼上bluesmile979的讲解
      

  13.   

    class A {
    public A(){
    System.out.println("A构造");
    } public static class B {
    public B(){
    System.out.println("B构造");
    }
    }
    }public class C extends A.B{
    public C(A a){
    System.out.println("C构造");
    } public static void main(String[] aa){
    A a=new A();
    new C(a);
    }
    }结果是什么
      

  14.   

    class A {
    public A(){
    System.out.println("A构造");
    } public static class B {
    public B(){
    System.out.println("B构造");
    }
    }
    }public class C extends A.B{
    public C(){
    System.out.println("C构造");
    } public static void main(String[] aa){
    new C();
    }
    }
    结果是什么
      

  15.   

    class A {
    public A(){
    System.out.println("A构造");
    } public static class B {
    public B(){
    System.out.println("B构造");
    }
    }
    }public class C extends A.B{
    public C(){
                      A.super();
    System.out.println("C构造");
    } public static void main(String[] aa){
    new C();
    }
    }
    结果是什么
      

  16.   

    其实就是《java编程思想》第七章的7.6.7的部分内容,我刚好看到这里,就写出来了,想看看是不是大家都会了就我不会,是属于基础知识吧,不应该算牛角尖吧?