首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 繼承內部類:特殊構造器語法與外部類引用綁定

     編輯:Java 相關知識

問題:內部類構造器隱含外部類引用

內部類實例必須綁定一個外部類實例。繼承內部類時,衍生類構造器需顯式提供此綁定。

特殊語法:enclosingInstance.super()

class WithInner { class Inner {} }
class InheritInner extends WithInner.Inner { // 直接繼承內部類
    // InheritInner() {} // 編譯錯誤:缺外部實例
    InheritInner(WithInner wi) {
        wi.super(); // 關鍵語法:綁定外部實例 wi
    }
    public static void main(String[] args) {
        WithInner wi = new WithInner();
        InheritInner ii = new InheritInner(wi);
    }
}

語法解析

  • WithInner.Inner 為被繼承的內部類完整名稱。
  • 構造器參數 WithInner wi 接收外部類實例。
  • wi.super() 將 wi 作為外部實例傳給基類內部類構造器,完成綁定。

對比:繼承外部類 vs 繼承內部類

場景繼承外部類繼承內部類
隱式綁定自動(子類構造器調用 super() 即綁定)無默認外部實例,必須顯式傳入
構造器語法super() 或 super(args)outerInstance.super()
訪問外部成員繼承獲得需通過綁定的外部實例訪問

應用場景

較少見,但當需要「擴展某個框架的內部事件類」且不想繼承整個外部框架類時有用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved