Masquage involontaire de méthodes de superclasses

Masquage involontaire de méthodes de superclasses

by Tudor Andrei Oancea -
Number of replies: 3

Bonjour,

En faisant l'exonèrent P7 sur les intégrateurs j'ai créé une superclasse Intégrateur qui contient 2 méthodes : evolue_simple (qui fait l'intégration numérique de la toupie passée en paramètre une fois) et evolue_multiple (qui répète évolue_simple n fois). 

J'ai donné un corps vide à ma fonction evolue_simple car je voulais par la suite toujours la masquer : en définissant les sous classes IntegrateurEulerCromer, IntegrateurNewmark et IntegrateurRungeKutta,  j'ai masqué evolue_simple en lui donnant à chaque fois la définition adaptée.

Cependant, j'ai l'impression que la méthode evolue_multiple n'existe plus dans les sous classes car faisant appel à une version masqué de evolue_simple. 

Comment puis-je résoudre ça sans redéfinir evolue_multiple dans chaque sous-classe?

Merci

Tags:
In reply to Tudor Andrei Oancea

Re: Masquage involontaire de méthodes de superclasses

by Matthias Zeller -

Qu'est ce qui te fait dire et que veux-tu dire par "j'ai l'impression que la méthode evolue_multiple n'existe plus dans les sous classes" ? Je ne pense pas qu'on puisse répondre si tu ne donnes pas de détails / exemple d'utilisation. Peut-être que la théorie de cette semaine sur le polymorphisme t'aiderai à comprendre :)

In reply to Matthias Zeller

Re: Masquage involontaire de méthodes de superclasses

by Tudor Andrei Oancea -

Mon problème était que dans le fichier test, lorsque je déclarais une instance d’IntegrateurEulerCromer et faisait appel à evolue_multiple j’obtenais un message d’erreur me disant que cette classe ne possède pas  une telle méthode. 

Mais en effet avec les vidéos sur le polymorphisme j’ai réussi à régler ça. Maintenant est-ce que je suis censé inclure ces notions dans mes réponses aux questions étant donné que ce n’était pas les dans le programme de la semaine dernière ?

In reply to Tudor Andrei Oancea

Re: Masquage involontaire de méthodes de superclasses

by Jean-Cédric Chappelier -

Non on ne supposait pas ces notions connue à ce stade, mais vous êtes allé plus loin que ce que l'on demandait : on ne demandait à ce stade qu'UN seul intégrateur ; c'est en voulant en faire plusieurs (sujet de la semaine 11 en fait ;-) ) que vous vous êtes mis dans une situation où le polymorphisme doit être utilisé. Mais c'est bien, cela vous a rendu sensible à l'utilisation de ce concept.

(par ailleurs on ne demandait pas non plus la méthode « evolue_multiple » : ce sera le rôle du Systeme (et était à ce stade le rôle du main()) que de faire cette évolution multiple).