PaliSkill
Python avancé

Leçon 3 / 9 — Chapitre 2: POO : héritage et polymorphisme

Redéfinir une méthode (override)

Une sous-classe peut redéfinir une méthode héritée, en écrivant une méthode du même nom : la nouvelle version remplace complètement celle de la classe parente pour les objets de la sous-classe.

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

    def se_presenter(self):
        return f"Je suis {self.nom}, un animal"

class Chien(Animal):
    def se_presenter(self):
        return f"Je suis {self.nom}, un chien"

rex = Chien("Rex")
print(rex.se_presenter())

Ce code affiche Je suis Rex, un chien : Chien.se_presenter remplace entièrement Animal.se_presenter pour les objets Chien — la version d'Animal n'est jamais exécutée ici, Python utilise toujours la méthode la plus spécifique disponible pour le type réel de l'objet.

Un objet Animal (créé directement, pas via Chien) continue d'utiliser la version originale, inchangée :

generique = Animal("Créature")
print(generique.se_presenter())

Ce code affiche Je suis Créature, un animal : redéfinir une méthode dans Chien n'affecte en rien la classe Animal elle-même, ni les objets créés directement à partir d'elle.

À vous de jouer : redéfinissez se_presenter dans une sous-classe, créez un objet de la classe parente et un de la sous-classe, et comparez les deux résultats.

🔒

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