Ich war über die Vererbung von inneren Klassen lesen und ich habe stecken versuchen zu verstehen, wie der folgenden Code funktioniert:Wie funktioniert dieses Beispiel für innere Klassenvererbung?
class Outer{
class Inner{
}
}
class Derived extends Outer.Inner{
Derived(Outer o){
o.super();
}
}
Soweit ich weiß, bezieht sich das Schlüsselwort Super auf den übergeordneten, super(), um es nicht ist Argumentkonstruktor. Im Fall der Klasse Outer ist die Oberklasse die Klasse Object.
Ich würde gerne verstehen, wie dieser Code funktioniert.
Warum ermöglicht die Instanziierung der Klasse Object die Erweiterung der inneren Klasse?
Was hat das Erstellen einer Object-Klasseninstanz mit der Erstellung eines Outer-Klassenobjekts zu tun?
Zeile mit "o.super();" entfernen Ursache Fehler:
Java: eine umschließende Instanz, die p.Outer.Inner enthält, ist erforderlich
Ich habe viele Artikel gelesen, aber ich kann nicht herausfinden, wie es funktioniert.
Ich werde für jede Antwort dankbar sein.
-Test es aus. Setzen Sie println() Zeilen in alle Konstruktoren und beobachten Sie, in welcher Reihenfolge sie ausgedruckt werden. ;) – GregaMohorko
Wenn Sie dies in einem realen Projekt tun, möchten Sie vielleicht Ihre Objekthierarchie überdenken. –