🐍 PyTutos

L'héritage entre classes

Crée des classes qui réutilisent et étendent d'autres classes.

⏱ 12 minutes 📂 avance #avance #classes #heritage #poo

L'héritage

L'héritage permet à une classe (la fille) de réutiliser et d'étendre une autre classe (la mère).

Exemple de base

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

    def manger(self):
        print(f"{self.nom} mange.")


class Chien(Animal):
    def aboyer(self):
        print(f"{self.nom} : Wouf !")


rex = Chien("Rex")
rex.manger()    # Rex mange.   (hérité d'Animal)
rex.aboyer()    # Rex : Wouf !

Surcharger une méthode

La classe fille peut remplacer une méthode de la mère :

class Animal:
    def parler(self):
        print("Bruit générique")

class Chat(Animal):
    def parler(self):
        print("Miaou !")

Chat().parler()    # Miaou !

super() — appeler la méthode parente

Pratique pour étendre sans tout réécrire :

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

class Chien(Animal):
    def __init__(self, nom, race):
        super().__init__(nom)    # appelle Animal.__init__
        self.race = race

rex = Chien("Rex", "Labrador")
print(rex.nom)    # Rex
print(rex.race)   # Labrador

Héritage multiple

Une classe peut hériter de plusieurs parents :

class Volant:
    def voler(self):
        print("Je vole !")

class Nageur:
    def nager(self):
        print("Je nage !")

class Canard(Volant, Nageur):
    pass

donald = Canard()
donald.voler()    # Je vole !
donald.nager()    # Je nage !

isinstance et issubclass

print(isinstance(rex, Chien))     # True
print(isinstance(rex, Animal))    # True (parce que Chien hérite d'Animal)
print(issubclass(Chien, Animal))  # True

💡 L'héritage est puissant mais ne pas en abuser. Souvent une simple composition (avoir un objet en attribut) est plus claire.

🧪 Quiz de validation

Réponds à toutes les questions. Il faut 70% de bonnes réponses pour valider le tuto !

🔒 Tu dois être connecté pour passer le quiz.