Leçon 4 / 9 — Chapitre 2: POO : héritage et polymorphisme
Étendre une méthode héritée avec super()
super() ne sert pas qu'au constructeur : on peut aussi l'utiliser pour appeler la version parente d'une méthode redéfinie, afin d'ajouter du comportement plutôt que de tout réécrire depuis zéro.
class Animal:
def se_presenter(self):
return "Je suis un animal"
class Chien(Animal):
def se_presenter(self):
message_parent = super().se_presenter()
return message_parent + ", plus precisement un chien"
rex = Chien()
print(rex.se_presenter())
Ce code affiche Je suis un animal, plus precisement un chien : super().se_presenter() exécute la version d'Animal, dont le résultat est ensuite complété dans Chien — plutôt que de dupliquer "Je suis un animal" en le réécrivant à l'identique.
Cette technique est particulièrement utile pour __init__ quand la sous-classe a plusieurs attributs supplémentaires à initialiser en plus de ceux du parent :
class Chien(Animal):
def __init__(self, nom, race):
super().__init__(nom)
self.race = race
self.dresse = False
À vous de jouer : redéfinissez une méthode héritée en appelant d'abord super().methode(), puis en complétant son résultat avec du texte supplémentaire.
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