程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 從內部類繼承

從內部類繼承

編輯:關於JAVA

由於內部類構建器必須同封裝類對象的一個句柄聯系到一起,所以從一個內部類繼承的時候,情況會稍微變得有些復雜。這兒的問題是封裝類的“秘密”句柄必須獲得初始化,而且在衍生類中不再有一個默認的對象可以連接。解決這個問題的辦法是采用一種特殊的語法,明確建立這種關聯:
 

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

從中可以看到,InheritInner只對內部類進行了擴展,沒有擴展外部類。但在需要創建一個構建器的時候,默認對象已經沒有意義,我們不能只是傳遞封裝對象的一個句柄。此外,必須在構建器中采用下述語法:
enclosingClassHandle.super();
它提供了必要的句柄,以便程序正確編譯。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved