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.