Junior
Qu'est-ce que le polymorphisme en programmation?
sobes.tech IA
Réponse de l'IA
Le polymorphisme (du grec "plusieurs formes") est la capacité de différents objets à réagir de manière différente au même message (appel de méthode), en fonction de leur type.
En programmation orientée objet, le polymorphisme permet :
- de travailler avec des objets de différentes classes via une interface commune ou une classe de base.
- de créer un code plus flexible et extensible.
Les principaux types de polymorphisme :
- Polymorphisme en temps de compilation (statique) : réalisé par la surcharge de méthodes (method overloading). Les méthodes portant le même nom mais avec des signatures différentes (nombre ou types de paramètres) sont définies dans une même classe.
- Polymorphisme en temps d'exécution (dynamique) : réalisé par la redéfinition de méthodes (method overriding). Une méthode dans une classe fille a la même signature qu'une méthode dans la classe parente. La méthode spécifique appelée est déterminée au moment de l'exécution en fonction du type réel de l'objet.
Exemple en Python (polymorphisme dynamique) :
class Animal:
def sound(self):
pass # Méthode de base, qui sera redéfinie
class Dog(Animal):
def sound(self):
# Redéfinition de la méthode sound pour la classe Dog
print("Woof")
class Cat(Animal):
def sound(self):
# Redéfinition de la méthode sound pour la classe Cat
print("Meow")
# Fonction qui fonctionne avec des objets via la classe de base Animal
def make_animal_sound(animal):
animal.sound()
# Utilisation du polymorphisme
dog = Dog()
cat = Cat()
make_animal_sound(dog) # Appelle Dog.sound() -> Woof
make_animal_sound(cat) # Appelle Cat.sound() -> Meow