Sobes.tech
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