Programmation/Programmation orientée objet/Polymorphisme

Le mot polymorphie vient du grec et signifie "qui peut prendre plusieurs formes". Dans la programmation orienté objet, le polymorphisme est utilisé en relation avec les fonctions, les méthodes et les opérateurs. Des fonctions et des méthodes de mêmes noms peuvent avoir des comportements différents ou effectuer des opérations sur des données de types différents. On distingue 2 types de polymorphisme, la surcharge et la redéfinition.

La surcharge

modifier

La surcharge est une possibilité offerte par certains langages de programmation qui permet de choisir entre différentes implémentations d'une même fonction ou méthode selon le nombre et le type des arguments fournis.

Le polymorphisme ad hoc ne doit pas être confondu avec le polymorphisme d'inclusion des langages à objets, permis par l'héritage de classe et la redéfinition de méthode (overriding en anglais).

La surcharge peut être statique (le choix de l'implémentation est alors fait à la compilation en fonction du nombre d'arguments et de leur type statique déclaré) ou dynamique (le choix de l'implémentation est alors fait à l'exécution en fonction du type dynamique des arguments). La surcharge dynamique est également appelée « dispatch ».

La redéfinition

modifier

La notion de polymorphisme est très liée à celle d’héritage. Grâce à la redéfinition, il est possible de redéfinir une méthode dans des classes héritant d’une classe de base. Par ce mécanisme, une classe qui hérite des méthodes d’une classe de base peut modifier le comportement de certaines d'entre elles pour les adapter à ses propres besoins. Contrairement à la surcharge, une méthode redéfinie doit non seulement avoir le même nom que la méthode de base, mais le type et le nombre de paramètres doivent être identiques à ceux de la méthode de base.

 


Voir aussi

modifier