À retenir
- Une seule interface pour plusieurs comportements.
- Réduit la répétition de code et facilite la maintenance.
- En sécurité, c'est une technique de camouflage pour les malwares.
En informatique, ce qui est polymorphe a la capacité de prendre plusieurs formes ou d'adopter différents comportements selon le contexte. Imaginez un bouton unique « Activer » qui allumerait une lampe, démarrerait une voiture ou lancerait une musique : l'action porte le même nom, mais le résultat s'adapte précisément à l'objet visé.
Étymologie
Issu du grec ancien poly (plusieurs) et morphē (forme). Le terme s'est imposé en informatique pour désigner la flexibilité du code capable de traiter des données de types variés avec une interface unique.
Exemples d'usage
- En programmation, une fonction
calculerSurface()est polymorphe si elle sait traiter aussi bien un carré qu'un triangle sans que le développeur ait à créer deux fonctions distinctes. - L'opérateur
+est souvent polymorphe : il additionne des nombres, mais peut aussi coller deux morceaux de texte ensemble. - Un virus polymorphe modifie sa propre signature (son apparence numérique) à chaque infection pour tromper les logiciels antivirus.
Cas d'usage
On le retrouve massivement dans la programmation orientée objet (POO) pour rendre le code plus souple et évolutif. En cybersécurité, il qualifie des logiciels malveillants sophistiqués qui utilisent le chiffrement pour changer d'apparence en permanence.
Bonnes pratiques
Utilisez le polymorphisme pour éviter de multiplier les structures de contrôle (comme les longs blocs if/else). Cela permet de créer des systèmes où l'on peut ajouter de nouvelles fonctionnalités (un nouveau type d'objet) sans avoir à modifier tout le code existant. Attention toutefois à ne pas en abuser, car un excès d'abstraction peut rendre le code difficile à suivre pour un débutant.
Synonymes
Antonymes
Conseil
Pour bien comprendre le polymorphisme en programmation, essayez de coder une classe parente « Animal » avec une méthode « crier() », puis créez des classes « Chien » et « Chat » qui répondent chacune à leur façon à cet appel. C'est l'exemple le plus simple pour visualiser le concept.
Questions fréquentes
Le polymorphisme ralentit-il mon programme ?
Il existe un léger coût de performance (appelé liaison dynamique), mais il est généralement négligeable par rapport aux bénéfices de clarté et de flexibilité.
Est-ce la même chose que l'héritage ?
Non, mais ils sont liés. L'héritage permet de transmettre des propriétés, tandis que le polymorphisme permet d'utiliser des objets de classes différentes de la même manière.