Ich habe zwei Java-Klassen: B, die eine andere Klasse A wie folgt erweitert:
class A {
public void myMethod() { /* ... */ }
}
class B extends A {
public void myMethod() { /* Another code */ }
}
Ich möchte das A.myMethod()
von anrufen B.myMethod()
. Ich komme aus der C ++ - Welt und weiß nicht, wie ich diese grundlegende Sache in Java machen soll.
java
inheritance
methods
polymorphism
Creasixtine
quelle
quelle
Nennen Sie es einfach mit super.
quelle
Die Antwort lautet wie folgt:
quelle
super.MyMethod()
sollte innerhalbMyMethod()
der genannt werdenclass B
. So sollte es seinquelle
call super.myMethod ();
quelle
Ich bin mir ziemlich sicher, dass Sie dies mit dem Java Reflection-Mechanismus tun können. Es ist nicht so einfach wie die Verwendung von Super, aber es gibt Ihnen mehr Leistung.
quelle
Verwenden Sie das Super- Schlüsselwort.
quelle
Rufen Sie die Basismethoden mit dem Schlüsselwort super auf und übergeben Sie die entsprechenden Parameter.
quelle
quelle
Sehen Sie, hier überschreiben Sie eine der Methoden der Basisklasse. Wenn Sie also die Basisklassenmethode von der geerbten Klasse aufrufen möchten, müssen Sie das Schlüsselwort super in derselben Methode der geerbten Klasse verwenden.
quelle
Wenn Sie diese Methoden zur Initialisierung verwenden, verwenden Sie Konstruktoren der Klasse A und übergeben Sie das Super-Schlüsselwort im Konstruktor der Klasse B.
Oder wenn Sie eine Methode der Superklasse aus der Unterklassenmethode aufrufen möchten, müssen Sie das Schlüsselwort super in der Unterklassenmethode verwenden, wie: super.myMethod ();
quelle
quelle