Polymorphisme en "orienté-objet"

Sommaire du document

Le polymorphisme permet d'utiliser de manière uniforme des objets très différents. C'est donc un moyen de manipuler des objets hétéroclites de la même manière, pourvu qu'ils disposent d'une souche commune.

Quand nous définissons pour une sous classe une méthode de même signature (qui porte le même nom, retourne le même type de valeur, et possède le même nombre et les même types d'arguments) qu'une méthode définie dans une super-classe, c'est la définition de méthode trouvée en premier (en partant de notre position dans la hiérarchie et en remontant vers la super classe) qui est utilisée.

Overriding (ou polymorphisme d'héritage)

Quand le terme polymorphisme est évoqué pour se référer à la capacité qu'à un objet d'être considéré en tant qu'objet d'un autre niveau de sa hiérarchie (niveau supérieur), il s'agit du polymorphisme d'héritage, ou overriding.

Mais que veut-il dire par là ?

Reprenons notre exemple de classes Presonne, et Lecteur.
Si nous désirons dénombrer dans un programme les objets de la classe Personne, nous pouvons prendre en compte les objets de la classe Lecteur car ils sont aussi des personnes.
Nous pouvons donc utiliser les objets de la classe Lecteur en tant qu'objets de la classe Personne, et nous utilisons une seule méthode compter(). C'est l'aspect overriding (polymorphisme d'héritage) du concept de polymorphisme.

Remarques

Le fait de considérer par exemple que le lecteur est une personne est juste, car tous les lecteurs possèdent toutes les caractéristiques et les comportements d'une personne.

Considérer qu'une personne est un lecteur est impossible, car toutes les personnes ne possèdent pas forcément une date d'inscription, ni une collection de livres. Nous ne pouvons donc pas créer une nouvelle personne de type lecteur, mais nous pouvons créer un nouveau lecteur de type personne.

Si nous considérons un lecteur comme une personne, nous ne pouvons plus employer son attribut qui signale qu'il possède une date d'inscription et une collection de livres. Nous généralisons l'objet et perdons ainsi accès à ses spécialités.

Dans le cas d'un overriding de méthode, la signature de la méthode est identique (elle porte le même nom, retourne le même type de valeur, et possède le même nombre et les même types d'arguments). C'est l'implémentation interne de la méthode qui diffère.

 

Overloading (ou surcharge)

Nous retrouvons l'overloading dans les termes français de surcharge, ou de polymorphisme ad hoc.

Dans le cas d'un overloading, le nom de méthode est identique, mais la signature de la méthode diffère dans le nombre ou le type d'arguments, ou la valeur retournée.
ttention que dans certains langages comme Java, le type de retour d'une méthode ne fait pas partie de la signature. L'overloading n'est possible dans ce cas que au niveau des arguments.

NB : les exemples mentionnent des polymorphismes au niveau des méthodes, mais nous pouvons aussi appliquer ce concept par exemple au constructeur.

 

Polymorphisme généralisé

Certains concepts de l'orienté objet ne sont pas supportés par tous les langages. Par exemple, le concept de polymorphisme généralisé n'est pas pris en compte dans le langage Java.

 

Réseaux sociaux

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.

 

Nuage de mots clés

16 mots clés dont 0 définis manuellement (plus d'information...).

Avertissement

Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.

 

Astuce pour imprimer les couleurs des cellules de tableaux : http://www.gaudry.be/ast-rf-450.html
Aucun commentaire pour cette page

© Ce document issu de l′infobrol est enregistré sous le certificat Cyber PrInterDeposit Digital Numbertection. Enregistrement IDDN n° 5329-432
Document créé le 17/04/05 00:00, dernière modification le Mercredi 28 Juin 2017, 15:26
Source du document imprimé : http:///www.gaudry.be/oriente-objet-polymorphisme.html
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

Utilisateur (masquer)
Apparence (afficher)
Stats (afficher)
15838 documents
455 astuces.
550 niouzes.
3107 definitions.
447 membres.
8121 messages.

Document genere en :
0,09 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
A l'école, c'est le professeur qui devait lever la main pour parler à Chuck Norris.

Anonyme [Chuck Norris fact]
 
l'infobrol
Nous sommes le Mardi 26 Septembre 2017, 22:03, toutes les heures sont au format GMT+1.00 Heure, heure d'été (+1)