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 l'attestation finale.

9 000 XOF / 13,72 € / 14,95 $

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

Pour vous communiquer où envoyer le paiement.

Moyen de paiement souhaité

Nous vous contactons pour le paiement — activé dès réception.