Ich habe eine harte Zeit mit dem Kopf um nicht-statische verschachtelte Klassen in Java gewickelt. Betrachten Sie das folgende Beispiel, das "Inner" und dann "Child" ausgibt.Java: Nicht-statische geschachtelte Klassen und instance.super()
class Outer {
class Inner {
Inner() { System.out.println("Inner"); }
}
}
public class Child extends Outer.Inner {
Child(Outer o) {
o.super();
System.out.println("Child");
}
public static void main(String args[]) {
new Child(new Outer());
}
}
Ich verstehe, dass Instanzen der Inneren müssen immer mit einer äußeren Instanz zugeordnet werden, und dass das auch zu Kind gilt, da es sich Inner. Meine Frage ist, was die o.super()
Syntax bedeutet - warum ruft es den Inner Konstruktor?
Ich habe nur ein einfaches super(args)
verwendet, um rufen Sie den Oberklassenkonstruktors und super.method()
nennt die Superclass-Version einer überschriebenen Methode, aber nie etwas von der Form instance.super()
gesehen.
LOL ... was hat das die "interview-questions" tag? – Cristian
Im Rahmen eines Interviews für eine Java-Position wurde ich gebeten, ein IKM-Quiz zu absolvieren; Diese Frage ist eine vereinfachte Form des Quiz. – Kiv
@Kiv hast du ein Beispiel für die Nutzung des realen Lebens? – chepseskaf