Mam dwie klasy Java: B, która rozszerza inną klasę A w następujący sposób:
class A {
public void myMethod() { /* ... */ }
}
class B extends A {
public void myMethod() { /* Another code */ }
}
Chciałbym zadzwonić pod numer A.myMethod()
nadawcy B.myMethod()
. Pochodzę ze świata C ++ i nie wiem, jak zrobić tę podstawową rzecz w Javie.
java
inheritance
methods
polymorphism
Creasixtine
źródło
źródło
Po prostu nazwij to super.
źródło
Odpowiedź brzmi następująco:
źródło
super.MyMethod()
powinien być nazywany wewnątrzMyMethod()
zclass B
. Więc powinno wyglądać następującoźródło
wywołanie super.myMethod ();
źródło
Jestem pewien, że możesz to zrobić za pomocą mechanizmu Java Reflection. Nie jest to tak proste, jak użycie super, ale daje więcej mocy.
źródło
Użyj słowa kluczowego super .
źródło
wywołaj metody podstawowe za pomocą słowa kluczowego super i przekaż odpowiednie parametry.
źródło
źródło
Widzisz, tutaj zastępujesz jedną z metod klasy bazowej, dlatego jeśli chcesz wywołać metodę klasy bazowej z klasy dziedziczonej, musisz użyć słowa kluczowego super w tej samej metodzie klasy dziedziczonej.
źródło
Jeśli używasz tych metod do inicjalizacji, użyj konstruktorów klasy A i przekaż słowo kluczowe super wewnątrz konstruktora klasy B.
Lub jeśli chcesz wywołać metodę superklasy z metody podklasy, musisz użyć słowa kluczowego super wewnątrz metody podklasy, na przykład: super.myMethod ();
źródło
źródło