这是在java解惑(Puzzle 90)中看到的一个例子:public class Outer {    class Inner1 extends Outer {}    class Inner2 extends Inner1 {}
}
这个编译不能通过,变成下面这个就可以,看书上的解释也不是太清楚,谁明白的话给指点一下啊!!!public class Outer {    class Inner1 extends Outer { }    class Inner2 extends Inner1 {
        public Inner2() {
            Outer.this.super();
        }
    }
}

解决方案 »

  1.   

    http://topic.csdn.net/u/20080621/14/ac4adb7e-cc95-45f3-b51d-6c33bd02540a.html
    看这个吧虽然我没仔细看,呵呵
      

  2.   

    这样写
    public class Outer {    class Inner1 extends Outer {}    class Inner2 extends Inner1 {}
    }与这样写
    public class Outer {    class Inner1 extends Outer { }    class Inner2 extends Inner1 {
            public Inner2() {
                Inner2.this.super();
            }
        }
    }
    是一样的在Inner2的构造方法中,
    爷爷辈Outer的构造方法必须在
    爸爸辈Inner1的构造方法之前调用