Un appel à super super méthode de classe

Disons que j'ai trois classes A, B et C.

  • B extends A
  • C extends B

Ont tous un public void foo() méthode définie.

Maintenant C foo() méthode je veux appeler Un de foo() méthode (PAS son parent B de la méthode, mais le super super classe Une méthode).

J'ai essayé super.super.foo();, mais c'est une syntaxe non valide.
Comment puis-je y parvenir?

  • Juste parce que quelqu'un doit se demander, pourquoi est-ce que C prolonger B si vous semblez vouloir étendre Un directement? (J'imagine qu'il y a d'autres pièces que vous êtes en s'appuyant sur B de fonctionnalités, ou quelque chose)
  • Un des foo() peut être appelée à partir de C à l'aide de super.foo() seulement si B n'est pas de remplacer Une des foo().
  • Efficace Java 2nd Edition, Point 16: Favoriser la composition au cours de l'héritage. Aussi, découvrez le décorateur modèle; il peut répondre à votre besoin de mieux.
  • double possible de Pourquoi est super.super.méthode(); pas permis en Java?
InformationsquelleAutor Harish | 2010-08-11