PaliSkill
Python avancé

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

Hiérarchie de classes à plusieurs niveaux

Une sous-classe peut elle-même servir de classe parente à une autre : l'héritage se propage alors sur plusieurs niveaux, chaque niveau ajoutant ou redéfinissant du comportement.

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 ChienDeGarde(Chien):
    def parler(self):
        message = super().parler()
        return message + " et surveille la maison"

rex = ChienDeGarde("Rex")
print(rex.parler())
print(isinstance(rex, Animal))

Ce code affiche Rex aboie et surveille la maison, puis True. ChienDeGarde hérite de Chien, qui hérite lui-même d'Animal : super().parler() dans ChienDeGarde appelle la version de Chien (la plus proche dans la hiérarchie), pas directement celle d'Animal. isinstance(rex, Animal) reste True, car ChienDeGarde descend bien d'Animal, même indirectement.

Cette chaîne peut continuer sur autant de niveaux que nécessaire, mais au-delà de trois ou quatre niveaux, une hiérarchie devient généralement difficile à suivre — mieux vaut alors reconsidérer la conception.

À vous de jouer : créez une hiérarchie à trois niveaux (AnimalChien → une sous-classe de Chien), et vérifiez avec isinstance() qu'un objet du niveau le plus bas est bien reconnu comme instance des trois classes.

🔒

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