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 (Animal → Chien → 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 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.