Polymorphism
Le polymorphisme permet à la même interface d'opérer sur des instances de types différents, sous deux formes : statique (surcharge/génériques) et dynamique (redéfinition/méthodes virtuelles).
Objectif
Traiter différents types via une interface unifiée, améliorant la réutilisation et l'extensibilité du code.
Mécanisme
Polymorphisme statique : surcharge (même nom, paramètres différents) et génériques (instanciés à la compilation). Polymorphisme dynamique : redéfinition (la sous-classe remplace la méthode parente) dispatchée via des vtables. Go utilise des interfaces à implémentation implicite ; Rust des objets trait.
Cas d’usage
- Conception orientée objet
- Abstraction d'interfaces
- Réutilisation de code