Polymorphisme (informatique)

Infos
En informatique, le polymorphisme est l'idée d'autoriser le même code à être utilisé avec différents types, ce qui permet des implémentations plus abstraites et générales.
Polymorphisme (informatique)

En informatique, le polymorphisme est l'idée d'autoriser le même code à être utilisé avec différents types, ce qui permet des implémentations plus abstraites et générales.

Polymorphisme paramétré

Le polymorphisme paramétré consiste à définir des fonctions qui peuvent être appliquées à des types paramétrés. Par exemple, il est possible de définir une même fonction concat permettant de concaténer deux listes quel que soit le type de données qu'elles contiennent. Dans ce cas, le type de la fonction concat est noté : \mathrm : \mathrm_\alpha \times \mathrm_\alpha \rightarrow \mathrm_\alpha où α est un paramètre qui représente le type de données que contiennent les listes. α peut correspondre aux types entier, réel, chaîne de caractères, listeβ, etc. Le polymorphisme paramétré est utilisé par les langages Caml et Haskell.

Polymorphisme par sous-typage (dérivation)

L'idée est de partir d'un type et de le modifier. Par exemple, en C++ on peut créer une classe de base, puis faire des classes dérivées. Ce concept est associé à l'approche orientée objet. class Forme ; class Carre:public Forme ; class Cercle:public Forme ; Grâce aux fonctions virtuelles, on peut faire un algorithme en n'utilisant que la classe de base qui va automatiquement appeler les fonctions des classes dérivées: float AireTotal(Forme
- tabl, int nb) return s; ... Forme
- tableau = ; AireTotal(tableau, 3); ...

Intérêt du Polymorphisme

En proposant d'utiliser un même nom de méthode pour plusieurs types d'objets différents, le polymorphisme permet une programmation beaucoup plus générique. Le développeur n'a pas à savoir, lorsqu'il programme une méthode, le type précis de l'objet sur lequel la méthode va s'appliquer. Il lui suffit de savoir que cet objet implémentera la méthode. Ainsi, un logiciel de calcul d'intérêt pour des comptes bancaires se présenterait de la façon suivante en programmation classique (pseudo code): case MonCompteBancaire PEA : MonCompteBancaire.calculeInteretPEA PEL : MonCompteBancaire.calculeInteretPEL LivretA : MonCompteBancaire.calculeInteretLivretA end case Si un nouveau type de compte bancaire PERP apparait (et avec lui un nouveau calcul), il sera nécessaire d'une part d'écrire la nouvelle méthode calculeInteretPERP, mais aussi de modifier tous les appels du calcul ci-dessus. Dans le meilleur des cas, celui-ci sera isolé et mutualisé de sorte qu'une seule modification sera nécessaire. Dans le pire des cas, il peut y avoir des centaines d'appels à modifier. Avec le polymorphisme, toutes les méthodes porteront le même nom "calculInteret" mais auront des codes différents (un par type de compte). L'appel sera de la forme : MonCompteBancaire.calculeInteret Lors de l'arrivée du nouveau compte, aucune modification de ce code ne sera nécessaire. Le choix de la méthode réelle à utiliser sera fait automatiquement à l'exécution par le langage, alors que dans le cas précédent c'est le développeur qui devait programmer ce choix. Catégorie:Programmation orientée objet Catégorie:Programmation fonctionnelle bs:Polimorfizam de:Polymorphie (Programmierung) en:Type polymorphism es:Polimorfismo (programación orientada a objetos) et:Polümorfism (informaatika) he:פולימורפיזם (תוכנה) ja:ポリモーフィズム lt:Polimorfizmas (programavime) nl:Polymorfisme (informatica) pl:Polimorfizm (informatyka) pt:Polimorfismo ru:Полиморфизм в языках программирования uk:Поліморфізм (програмування)
Sujets connexes
Caml   Concaténation   Fonction virtuelle   Haskell   Informatique   Liste   Méthode (informatique)  
#
Accident de Beaune   Amélie Mauresmo   Anisocytose   C3H6O   CA Paris   Carole Richert   Catherinettes   Chaleur massique   Championnat de Tunisie de football D2   Classement mondial des entreprises leader par secteur   Col du Bonhomme (Vosges)   De viris illustribus (Lhomond)   Dolcett   EGP  
^