因為內部類的構造器必須連接到指向其外部類對象的引用. 因為在繼承內部類的時候那個指向外部類對象的"秘密的"引用必須被初始化,而在導出類中不再存在可連接的默認對象,要解決這個問題必須用特殊的語法來明確說清它么之間的關聯:
//: innerclasses/InheritInner.java // Inheriting an inner class. class WithInner { class Inner {} } public class InheritInner extends WithInner.Inner { //! InheritInner() {} // Won't compile InheritInner(WithInner wi) { wi.super(); //必須 } public static void main(String[] args) { WithInner wi = new WithInner(); InheritInner ii = new InheritInner(wi); } } ///:~