PaliSkill
Python avancé

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