欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java內(nèi)部類的繼承(全)

 更新時間:2015年07月27日 10:53:09   作者:尚未初始化  
這篇文章主要介紹了Java內(nèi)部類的繼承,大家都知道JAVA內(nèi)部類的構(gòu)造器必須連接指向其外圍類對象的引用,所以在繼承內(nèi)部類的時候,需要在導(dǎo)出類的構(gòu)造器中手動加入對基類構(gòu)造器的調(diào)用,需要的朋友可以參考下

下面通過實例代碼給大家分享下有關(guān)JAVA內(nèi)部類的繼承,具體詳解如下:

Java內(nèi)部類的構(gòu)造器必須連接到指向其外圍類對象的引用(構(gòu)造內(nèi)部類必須給它一個外部類對象的引用,內(nèi)部類依賴于外部類對象),所以在繼承內(nèi)部類的時候,需要在導(dǎo)出類的構(gòu)造器中手動加入對基類構(gòu)造器的調(diào)用。

因為,在導(dǎo)出類實例化時,并不存在一個外圍類對象,以讓導(dǎo)出類的實例去連接到它。

所以,我們需要創(chuàng)建一個外圍類,然后用一個特定的語法來表明內(nèi)部類與外圍類的關(guān)系。

在下例子中,需要給導(dǎo)出類InheritInner一個來自內(nèi)部類的外圍類中的引用。普通的繼承,只需在導(dǎo)出類構(gòu)造器中加入super();,而內(nèi)部類則需要外圍類對象引用.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);
  }
 }

而進(jìn)一步,當(dāng)被繼承的內(nèi)部類只有非默認(rèn)構(gòu)造器時應(yīng)該怎么辦呢?

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);//如代碼所示,當(dāng)被繼承的構(gòu)造器需要參數(shù)時,應(yīng)把參數(shù)傳遞給這個super函數(shù)
  }
  public static void main(String[] args){
    WithInner wi = new WithInner();
    InheritInner ii = new InheritInner(wi);
  }
}    

以上就是對JAVA內(nèi)部類的繼承詳解,希望能夠幫助到大家。

相關(guān)文章

最新評論