Wie kann man von einer verschachtelten Klasse auf eine Superklassenmethode zugreifen?

7

Ich hoffe, dieser Code erklärt das Problem:

%Vor%

Ich weiß, dass ich vielleicht etwas falsch mache, weil die Vererbung vielleicht nicht so verwendet werden sollte. Aber es ist der einfachste Weg in meiner Situation. Und außerdem bin ich nur neugierig. Ist es möglich?

    
mik01aj 21.04.2010, 20:05
quelle

2 Antworten

16

Bar.super.a() scheint zu funktionieren.

Nach JLS Abschnitt 15.12

  

Klassenname super. NonWildTypeArguments_opt Kennung (ArgumentList_opt)

ist eine gültige MethodInvocation

    
ILMTitan 21.04.2010, 20:11
quelle
3

Sie können jede Methode der äußeren Klasse mit Outer.this.method() aufrufen.

Aber Methoden werden zur Laufzeit aufgelöst. Wenn Sie sie in Ihrer Unterklasse überschrieben haben, kann nur die Unterklassenmethode ( Bar.a() ) auf das Original zugreifen (indem Sie super.a() aufrufen).

Wie Sie wahrscheinlich herausgefunden haben, können Sie nicht Bar.this.super.a() schreiben - aber selbst wenn Sie könnten, würde es Ihnen trotzdem Bar.a() , nicht Foo.a() geben.

    
Michael Myers 21.04.2010 20:07
quelle

Tags und Links