En Java, comment dois-je appeler une classe de base de la méthode de la méthode de remplacement dans une classe dérivée?
J'ai deux classes Java: B, qui s'étend d'une autre catégorie, comme suit :
class A {
public void myMethod() { /* ... */ }
}
class B extends A {
public void myMethod() { /* Another code */ }
}
Je voudrais appeler les A.myMethod()
de B.myMethod()
. Je suis en provenance de la C++ monde, et je ne sais pas comment faire cette chose en Java.
Vous devez vous connecter pour publier un commentaire.
Le mot-clé que vous recherchez est
super
. Voir ce guide, par exemple.Viens de l'appeler à l'aide de super.
Réponse est comme suit:
super.MyMethod()
devrait être appelée à l'intérieur de laMyMethod()
de laclass B
. Donc, il devrait être comme suitJe suis assez sûr que vous pouvez le faire à l'aide de Java Réflexion mécanisme. Il n'est pas aussi simple que l'utilisation de super, mais il vous donne plus de puissance.
appel super.myMethod();
Utiliser le super mot-clé.
appeler les méthodes de base avec super mot-clé et adopter un params.
Voir, ici vous remplacez un de la méthode de la classe de base donc si vous aimez l'appel de la classe de base de la méthode de classe héritée alors vous devez utiliser super mots clés dans la même méthode de la classe héritée.
Si u r l'utilisation de ces méthodes pour l'initialisation, puis utiliser des constructeurs de la classe A et de passer de super mot-clé à l'intérieur du constructeur de la classe B.
Ou si vous souhaitez appeler une méthode de la super-classe de la sous-classe méthode, puis vous devez utiliser le mot-clé super à l'intérieur de la sous-classe de la méthode comme :
super.myMethod();