對於內部類中super()的疑惑和實驗

繼承外部類的內部類,當生成一個構造器時候,需要一個指向外部類對象的引用和調用外部類對象的super()方法,


然而super()一直以爲是調用父類的構造函數,在本例中使用,居然是可以調用內部類的構造函數。先留個疑問,如果以後想到了再來繼續說明。

class WithInner {
	
	WithInner() {
		System.out.println("調用外部類構造方法");
	} 
  class Inner {
	  Inner() {
		  System.out.println("調用內部類構造方法");
	  }
  }
  

}

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);
  }
} ///:~

發佈了35 篇原創文章 · 獲贊 9 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章