Ajouter un commentaire

dav79

Je pense que j'était claire dans mon explication,

Le problème n'est pas de savoir si l'implémentation est judicieuse ou non, c'est juste des tests, je suis les ennoncées de l'exercice, c'est pas moi qu'a fait l'analyse

Je rappel rapidement mon souci. J'ai trois classes :

- 1 class abstract FonctionNommee qui deux méthodes :
-- abstract calculer()
-- void imprimer(double x) {...................}

- 1 class CosMoinsNommee() : sous-class de FonctionNommee
-- le constructeur
-- méthode redéfinit calculer(double x) {...................}

- 1 class ImprimerFonction sous-classe FonctionNommee a deux méthodes
--- Constructeur
--- void lister(){................}
-- calculer // Car je suis obligé de redéfinir cette méhode,

La classes ImprimerFonction ne peut être déclaré en abstract car la méthode lister() n'est pas une méthode abstract, c'est bien là le problème.

Au départ je n'avais pas mis la méthode calculer dans la classe ImprimerFonction, mais le compilateur ne l'accepte pas, puisque que la classe ImprimerFonction est une sous-classe de la classe FonctionNommee, on doit obligatoirement redéfinir les méthodes abstract dans les classes filles. Et donc ici je doit redéfinir calculer() dans les sous-classes CosMoinsNomme et ImprimerFonction.

Moi je souhaiterai redéfinir calculer dans CosMoinsNomme, comment faire pour faire comprendre au compilateur qu'il n'est pas nécessaire de rédifinir calculer dans la class ImprimerFonction, tout tenant compte que la classe ImprimerFonction doit être une sous-classe de class FonctionNommee.

Est ce que maintenant c'est plus claire.
C'est pourquoi j'ai parlé d'annotation comme par exemple @override, je crois que cette instruction veut dire que le compilateur ne tient pas compte de la redéfinition de la méthode de la classe parent.

Est ce que vous avez cerné mon problème maintenant, est ce quelqu'un aurait une solution, naturellement je pense que oui, ça doit être un problème classic de débutant que j'expose, j'attends vous réactions.

Je vous remercie par avance,

dav79

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 FFFF  ZZZZZ  U   U   GGG   TTTTTT 
F Z U U G TT
FFF Z U U G GG TT
F Z U U G G TT
F ZZZZZ UUU GGG TT