Programmation/Programmation orientée objet/Polymorphisme
Un livre de Wikibooks.
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. L’on distingue 2 types de polymorphisme, la surcharge et la redéfinition.
[modifier] La surcharge
La surcharge permet d’adapter le comportement d’une fonction ou d’une méthode en fonction des paramètres qu’elle reçoit. L’avantage pour le programmeur est qu’il n’a plus besoin de définir plusieurs fonctions ayant des noms différents pour effectuer une même opération sur des variables de types différents. C’est le compilateur qui s’occupe d’appeler la bonne version de la fonction ou méthode en fonction des paramètres avec lesquelles elle est appelée. Il est possible de définir plusieurs fonctions ou méthodes de même nom, pour autant que le type ou le nombre de paramètres soit différent pour chaque fonction ou méthode.
[modifier] La redéfinition
La notion de polymorphie 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 méthodes héritées pour être adaptées aux besoins de la classe fille. 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.