Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1397 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  question POO

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

question POO

n°1482131
jokaritaff
Posté le 27-11-2006 à 10:41:46  profilanswer
 

J'ai une classe fille F qui hérite d'une classe mère M
 
Je change le corps d'une méthode de la classe F, héritée de la classe M
Mais je ne change pas la liste des paramètres envoyés à cette méthode.
 
Au final la méthode effectue le meme travail, mais j'affine dedans certains variables et requetes SQL, car
sinon la requete plante.
 
Ce changement est a considérer comme de la surcharge ou du polymorphisme ?
 
j'aurai tendance a dire :
- que c'est pas de la surcharge car bien que la méhode redéfinie porte le meme nom que dans la classe M, je ne touche à pas a la liste des parametres envoyés, ni en nombre ni en typage
- que c'est du polymorphisme, car je redéfinis le corps de la méthode.
 
C'est cela ?

mood
Publicité
Posté le 27-11-2006 à 10:41:46  profilanswer
 

n°1482147
_darkalt3_
Proctopathe
Posté le 27-11-2006 à 11:04:33  profilanswer
 

oui
 
la méthode en question est bien virtuelle ?

n°1482149
jokaritaff
Posté le 27-11-2006 à 11:05:21  profilanswer
 

tu veux dire abstraite ?

n°1482154
_darkalt3_
Proctopathe
Posté le 27-11-2006 à 11:13:09  profilanswer
 

yep

n°1482160
jokaritaff
Posté le 27-11-2006 à 11:20:46  profilanswer
 

ah zut j'avais pas fait gaffe que je suis dans la section .Net
mais bon ma question porte sur la POO , pas sur un langage en particulier
 
Non ma méthode est pas virtuelle car je travaille en PHP5.
mais si je travaillais en C# oui elle serait virtuelle.

n°1482178
jokaritaff
Posté le 27-11-2006 à 11:38:55  profilanswer
 

donc si la méthode de la classe M était abstraite et que je la définis dans la classe F (forcément)
c'est donc du polymorphisme.
c ca ?


Message édité par jokaritaff le 27-11-2006 à 11:39:43
n°1482180
_darkalt3_
Proctopathe
Posté le 27-11-2006 à 11:42:39  profilanswer
 

tu peux aussi la définir dans M

n°1482188
jokaritaff
Posté le 27-11-2006 à 11:56:53  profilanswer
 

non le corps de la méthode dans M est trop générique
J'ai mis tout ce qui pouvait etre commun a toutes les classes filles
 
Mais chaque classe fille a ses spécificités (c pour de la persistance d'objet)
 
D'ou l'interet d'abstraire la méthode dans M.
 
En C# je suppose qu'il n'est pas possible de modifier seulement le corps d'une méthode polymorphée, si on indique pas que la méthode dans M est abstract
 
Au fait 2 questions sur C# :
- dans la pratique ya une différence entre abstract et virtual ?
 
- si je veux surcharger une méthode, je dois obligatoirement préciser le mot clé override avant le nom de la méthode, ou le compilateur déduit la  surcharge en voyant que ya plusieurs méthodes avec le meme nom, mais avec des parametres en nombre et type différent ?

n°1482285
_darkalt3_
Proctopathe
Posté le 27-11-2006 à 14:09:38  profilanswer
 

jokaritaff a écrit :

non le corps de la méthode dans M est trop générique
J'ai mis tout ce qui pouvait etre commun a toutes les classes filles


Ce que je voulais dire c'est que tu peux avoir une implémentation dans M ET dans F
 

jokaritaff a écrit :

Au fait 2 questions sur C# :
- dans la pratique ya une différence entre abstract et virtual ?


abstrat pour les classes, virtual pour les méthodes
 

jokaritaff a écrit :

- si je veux surcharger une méthode, je dois obligatoirement préciser le mot clé override avant le nom de la méthode, ou le compilateur déduit la  surcharge en voyant que ya plusieurs méthodes avec le meme nom, mais avec des parametres en nombre et type différent ?


Essayes

n°1482292
jokaritaff
Posté le 27-11-2006 à 14:17:36  profilanswer
 

Citation :

Ce que je voulais dire c'est que tu peux avoir une implémentation dans M ET dans F


effectivement : un implementtation générique dans l
 
abstrat pour les classes, virtual pour les méthodes
 
 
Essayes

mood
Publicité
Posté le 27-11-2006 à 14:17:36  profilanswer
 

n°1482294
jokaritaff
Posté le 27-11-2006 à 14:20:47  profilanswer
 

Citation :

Ce que je voulais dire c'est que tu peux avoir une implémentation dans M ET dans F


effectivement : un implementation générique dans M, et une implémentation plus spécique dans F
 

Citation :

abstrat pour les classes, virtual pour les méthodes


ok, merci
 
 

Citation :

Essayes


j'ai pas Visual Studio au boulot, mais je vais un peu m'amuser sur SharpDevelop


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  question POO

 

Sujets relatifs
Question galerie en PHP[C++] Question de débutant et solution simple
[Question de n00b] Export de bdd et gestion des utilisateurs.Question facile à répondre VB.net
Question sur framework 3.0Question de débutant sur la fonction menu.addChild
[Résolu] Question Poo en delphi[Résolu] POO question hype débutant
[PHP] Question POO / pointeurs [résolu- presque]Question nul sur la POO
Plus de sujets relatifs à : question POO


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR