Une partie de moi pense que cela ne devrait pas être possible (même si c'est le cas), mais je demanderai quand même.Comment substituer la méthode pour appeler la méthode de la superclasse de la superclasse?
Compte tenu de la hiérarchie de classe suivante (Grandparent
et Parent
sont d'une 3ème partie et donc pas sous mon contrôle), comment pourrais-je passer outre myMethod()
dans Child
telle qu'elle contourne la mise en œuvre surchargée dans Parent
et invoque celui Grandparent
?
class Grandparent {
public void myMethod() {
// do stuff
}
}
class Parent extends Grandparent {
@Override public void myMethod() {
super.myMethod();
// do something else
}
}
class Child extends Parent {
@Override public void myMethod() {
// ??? I want to *only* do what Grandparent did here
}
}
Pretend que la classe Parent
offre beaucoup d'autres comportements utiles et est un élément crucial de la hiérarchie de Child
(autrement dit, je ne suis pas à la recherche de « faire Child
une sous-classe de Grandparent
».
Duplicate de http://stackoverflow.com/questions/586363/why-is-super-super-method-not-allowed-in-java. –
Yup, voté comme dupe pour la même raison. –
Voté pour fermer - dupliquer. –