[C#] appel d'une méthode de classe mère

appel d'une méthode de classe mère [C#] - C#/.NET managed - Programmation

Marsh Posté le 23-03-2006 à 11:27:41    

Bonjour,
 
Ca fait quelques jours que je fais du C#, et j'ai une petite question à la con.
Soit la classe A, la classe B qui hérite de A, et la classe C qui hérite de B.
Dans ces 3 classe, j'ai une méthode void toto().
 
Dans l'implémentation de la méthode toto() dans la classe C, je veux appeler la méthode de la classe B:
je fais donc un base.toto();
 
Comment être sûr que j'appele bien la méthode de la classe B, et pas celle de la classe A ???
En C++ je peux filer le nom de classe ClasseB::toto(), mais en C#, je ne sais pas faire l'équivalent de cela...

Reply

Marsh Posté le 23-03-2006 à 11:27:41   

Reply

Marsh Posté le 27-03-2006 à 10:37:52    

gaille a écrit :

Bonjour,
 
Ca fait quelques jours que je fais du C#, et j'ai une petite question à la con.
Soit la classe A, la classe B qui hérite de A, et la classe C qui hérite de B.
Dans ces 3 classe, j'ai une méthode void toto().
 
Dans l'implémentation de la méthode toto() dans la classe C, je veux appeler la méthode de la classe B:
je fais donc un base.toto();
 
Comment être sûr que j'appele bien la méthode de la classe B, et pas celle de la classe A ???
En C++ je peux filer le nom de classe ClasseB::toto(), mais en C#, je ne sais pas faire l'équivalent de cela...


 
intuitivement on pourrait se dire qu'il faudrait faire un base.base.toto(), ce qui n'est pas autorisé.
en fait par construction du langage, on ne peut accéder qu'à la classe immédiatement parente.

Reply

Marsh Posté le 27-03-2006 à 10:43:10    

Je débute aussi en c# mais il me semble que la classe C prend la methode la plus proche car dans ce cas la classe B à une surcharge de la classe A du moin je crois que cela s'appelle du polymorphisme.
 
A vérifier par quelqu'un de plus avancer que moin. :/
 
Si tu veux utiliser une methode dans la classe A et qui est presente dans la classe B j'utiliserais une technique de chacal :/ qui consiste à créer une methode dans la classe B qui appelle la methode dans la classe A.  [:ciler]


Message édité par Berceker United le 27-03-2006 à 10:44:52
Reply

Marsh Posté le 28-03-2006 à 13:10:13    

gaille a écrit :

Bonjour,
 
Ca fait quelques jours que je fais du C#, et j'ai une petite question à la con.
Soit la classe A, la classe B qui hérite de A, et la classe C qui hérite de B.
Dans ces 3 classe, j'ai une méthode void toto().
 
Dans l'implémentation de la méthode toto() dans la classe C, je veux appeler la méthode de la classe B:
je fais donc un base.toto();
 
Comment être sûr que j'appele bien la méthode de la classe B, et pas celle de la classe A ???
En C++ je peux filer le nom de classe ClasseB::toto(), mais en C#, je ne sais pas faire l'équivalent de cela...


 
Implémentez tel quel ca marchera forcément car chacune de tes fonctions Toto() masquera la fonction de la classe mère : en résumé jamais tu n'auras accès aux fonctions des classes mères sans appel explicite de la classe mère avec base et ceci uniquement pour la première classe fille !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed