Heim  >  Artikel  >  Java  >  Was ist die Vererbung innerer Klassen in Java?

Was ist die Vererbung innerer Klassen in Java?

coldplay.xixi
coldplay.xixiOriginal
2020-09-02 14:10:222614Durchsuche

Vererbung innerer Java-Klassen: Denn wenn die exportierte Klasse instanziiert wird, gibt es kein peripheres Klassenobjekt, mit dem die Instanz der exportierten Klasse eine Verbindung herstellen kann. Wir müssen also eine äußere Klasse erstellen und eine bestimmte Syntax verwenden, um die Beziehung zwischen der inneren Klasse und der äußeren Klasse anzuzeigen.

Was ist die Vererbung innerer Klassen in Java?

Vererbung innerer Java-Klassen:

Der Konstruktor einer inneren Java-Klasse muss mit einer Referenz verbunden sein, die auf ihr äußeres Klassenobjekt zeigt (um eine innere Klasse zu erstellen, müssen Sie ihr eine Referenz auf die äußere Klasse geben). Wenn Sie also eine interne Klasse erben, müssen Sie im Konstruktor der abgeleiteten Klasse manuell einen Aufruf zum Basisklassenkonstruktor hinzufügen.

Denn wenn die exportierte Klasse instanziiert wird, gibt es kein peripheres Klassenobjekt, mit dem die Instanz der exportierten Klasse eine Verbindung herstellen kann.

Wir müssen also eine äußere Klasse erstellen und dann eine bestimmte Syntax verwenden, um die Beziehung zwischen der inneren Klasse und der äußeren Klasse anzugeben.

Im folgenden Beispiel müssen Sie der abgeleiteten Klasse InheritInner eine Referenz von der äußeren Klasse der inneren Klasse geben. Für die normale Vererbung müssen Sie nur 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);
  }
 }

zum Konstruktor der abgeleiteten Klasse hinzufügen. Was sollten Sie außerdem tun, wenn die geerbte innere Klasse nur einen nicht standardmäßigen Konstruktor hat?

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);
  }
}

Verwandte Lernempfehlungen: Java Basic Tutorial

Das obige ist der detaillierte Inhalt vonWas ist die Vererbung innerer Klassen in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn