Polymorphe

Définition, exemples et bonnes pratiques

À 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

adaptable protéiforme allomorphe

Antonymes

monomorphe fixe statique

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.