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

Java外部類的繼續(全)

編輯:關於JAVA

Java外部類的繼續(全)。本站提示廣大學習愛好者:(Java外部類的繼續(全))文章只能為提供參考,不一定能成為您想要的結果。以下是Java外部類的繼續(全)正文


上面經由過程實例代碼給年夜家分享下有關JAVA外部類的繼續,詳細詳解以下:

Java外部類的結構器必需銜接到指向其核心類對象的援用(結構外部類必需給它一個內部類對象的援用,外部類依附於內部類對象),所以在繼續外部類的時刻,須要在導出類的結構器中手動參加對基類結構器的挪用。

由於,在導出類實例化時,其實不存在一個核心類對象,以讓導出類的實例去銜接到它。

所以,我們須要創立一個核心類,然後用一個特定的語法來注解外部類與核心類的關系。

鄙人例子中,須要給導出類InheritInner一個來自外部類的核心類中的援用。通俗的繼續,只需在導出類結構器中參加super();,而外部類則須要核心類對象援用.super();

class WithInner{
  class Inner{}
 }
 public class InheritInner extends WithInner.Inner{
  InheritInner(WithInner wi){
     wi.super(); //wi的父類是object
   }
   public static void main(String[] args){
    WithInner wi = new WithInner();
    InheritInner ii = new InheritInner(wi);
  }
 }

而進一步,當被繼續的外部類只要非默許結構器時應當怎樣辦呢?

class WithInner{
  class Inner{
    public Inner(int i){
      System.out.println(i);
    }
  }
}
public class InheritInner extends WithInner.Inner{
  InheritInner(WithInner wi){
    int i=0;
    wi.super(i);//如代碼所示,當被繼續的結構器須要參數時,應把參數傳遞給這個super函數
  }
  public static void main(String[] args){
    WithInner wi = new WithInner();
    InheritInner ii = new InheritInner(wi);
  }
}    

以上就是對JAVA外部類的繼續詳解,願望可以或許贊助到年夜家。

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