Peux-tu énumérer les différents types de polymorphisme en programmation orientée objet?
sobes.tech IA
Réponse de l'IA
Dans la programmation orientée objet (POO), plusieurs types principaux de polymorphisme sont distingués :
-
Polymorphisme de sous-type (Subtype Polymorphism) — le type le plus courant, réalisé par héritage et redéfinition de méthodes. Permet d'utiliser des objets de sous-classes à la place des objets de la classe de base.
-
Polymorphisme paramétrique (Parametric Polymorphism) — réalisé via des types génériques, lorsque des fonctions ou des classes fonctionnent avec n'importe quel type de données.
-
Polymorphisme ad-hoc (Ad-hoc Polymorphism) — inclut la surcharge de fonctions et d'opérateurs, lorsqu'une fonction a plusieurs implémentations avec des types de paramètres différents.
-
Polymorphisme à l'exécution (Runtime Polymorphism) — obtenu par des méthodes virtuelles et le liaison dynamique, lorsque l'appel d'une méthode est déterminé au moment de l'exécution.
Exemple de polymorphisme de sous-type en Swift (iOS) :
class Animal {
func sound() {
print("Un son")
}
}
class Dog: Animal {
override func sound() {
print("Aboyer")
}
}
class Cat: Animal {
override func sound() {
print("Miaou")
}
}
let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
animal.sound() // L'appel de la méthode dépend du type réel de l'objet
}