Ich habe eine Klasse C1
:Anruf Mutter Methode anstelle der außer Kraft gesetzt ein
public class C1 {
public void method() {
//Do something
}
protected void anotherMethod() {
if (something) {
method();
/*Here, I want to call the method C1.method,
* but C2.method is called
*/
}
}
}
und eine andere Klasse C2
dass extends
es und overrides
die method
:
public class C2 extends C1 {
@Override
public void method() {
if (something) {
anotherMethod();
} else {
super.method();
}
}
}
Mein Problem im Code beschrieben wird Kommentar. Ich kann die Elternmethode in der Elternklasse nicht ausführen. Was ist der Grund?
Ich befolge Ihre Frage nicht vollständig, aber wenn Sie 'C1.method()' aufrufen wollen, sollten Sie 'super' verwenden. In der Tat, du machst das schon in der 'else'-Bedingung. –
Plus eins, mit der Begründung, dass Sie * dies in C++ tun können, also was Sie fragen, ist logisch. – Bathsheba
@TimBiegeleisen sein Problem ist die Tatsache, dass er glaubt, dass die Tatsache, dass er die Methode außer Kraft setzt, unmöglich ist, von C1 anzurufen. Kann nicht reproduziert werden. Könnten Sie uns bitte [mcve] liefern? Geben Sie uns mehr Code und zeigen Sie, wo Ihr Problem liegt. – xenteros