PaliSkill
Python avancé

Leçon 5 / 9 — Chapitre 2: POO : héritage et polymorphisme

Le polymorphisme : une même méthode, des comportements différents

Le polymorphisme désigne la capacité à appeler la même méthode sur des objets de classes différentes, chacune répondant à sa manière — une boucle unique peut ainsi traiter des objets variés sans connaître leur type précis.

class Animal:
    def __init__(self, nom):
        self.nom = nom
    def parler(self):
        return "..."

class Chien(Animal):
    def parler(self):
        return f"{self.nom} aboie"

class Chat(Animal):
    def parler(self):
        return f"{self.nom} miaule"

animaux = [Chien("Rex"), Chat("Felix"), Chien("Milo")]

for animal in animaux:
    print(animal.parler())

Ce code affiche trois lignes différentes, chacune adaptée au type réel de l'objet : animal.parler() appelle Chien.parler ou Chat.parler selon le cas, sans que la boucle n'ait besoin de tester le type de chaque objet avec un if.

Sans polymorphisme, il faudrait écrire quelque chose comme if isinstance(animal, Chien): ... elif isinstance(animal, Chat): ... (vu à la prochaine leçon) à l'intérieur de la boucle — le polymorphisme évite ce test explicite, en laissant chaque classe répondre à sa manière à un appel identique.

À vous de jouer : créez au moins deux sous-classes d'Animal qui redéfinissent parler différemment, placez-en plusieurs objets dans une liste, et parcourez-la avec une seule boucle.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 87 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès