|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : avril 2011 Messages : 9 ![]() |
J'ai défini en Ada 2005 une hiérarchie d'héritage entre des classes d'objets de type controlled. Je veux appeler sur une instance Vfils de la classe objet fils une méthode définie chez la classe objet père ou grand-père etc... Lorsque cette méthode n'a pas été surchargée, elle est directement héritée et je comprend que l'appel methode(Vfils) répond bien au besoin . Mais comment faire lorsque cette méthode a été redéfinie par le fils (ou chez le père si je veux utiliser la version grand-père de la méthode...). Existe-t'il un mot clé comme "inherited" pour qualifier la méthode du père ou faut-il systématiquement passer par un cast explicite de Vfils comme dans methode(pere(Vfils)) ou methode(grand_pere(Vfils)) ?
|
|
|
00
|
|
|
#2 |
|
Futur Membre du Club
![]() Inscription : mars 2011 Messages : 22 ![]() |
La bonne et seule façon de faire en Ada pour invoquer une version ancestrale d'une méthode surchargée est effectivement de changer le type apparent de l'objet (vers la racine de sa hiérarchie) en le "castant". Il n'y a pas de mot réservé du type "parent" ou "inherited" comme dans d'autres langages orientés objet. C'est sans doute moins souple, mais au moins les choses sont dites explicitement.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com