PaliSkill
Python avancé

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

L'héritage : une classe qui hérite d'une autre

L'héritage permet à une classe de reprendre automatiquement les attributs et méthodes d'une autre classe, pour éviter de dupliquer du code entre des classes proches.

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

    def se_presenter(self):
        return f"Je m'appelle {self.nom}"

class Chien(Animal):
    def aboyer(self):
        return f"{self.nom} aboie : Ouaf !"

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

Ce code affiche Je m'appelle Rex, puis Rex aboie : Ouaf !. class Chien(Animal): signifie que Chien hérite de Animal : Animal est la classe parente (ou classe mère), Chien est la classe enfant (ou sous-classe).

Chien n'a pas redéfini __init__ ni se_presenter : elle les reçoit automatiquement de Animal, et n'ajoute que ce qui lui est propre (aboyer). rex.se_presenter() fonctionne donc sans qu'aucun code n'ait été réécrit dans Chien.

À vous de jouer : créez une classe Animal avec __init__ et se_presenter, puis une classe Chat(Animal) qui ajoute une méthode miauler, et testez les deux méthodes sur un objet Chat.

À vous de jouer

À faire

Que va afficher ce code ?

class Animal:
    def __init__(self, nom):
        self.nom = nom
    def se_presenter(self):
        return f"Je suis {self.nom}"

class Chat(Animal):
    pass

f = Chat("Felix")
print(f.se_presenter())

Copiez ce code dans un environnement Python en ligne (Google Colab, Replit, ou tout autre) pour vérifier le résultat avant de répondre.

À vous de jouer

À faire

Dans class Chien(Animal):, quel role joue Animal ?

Copiez ce code dans un environnement Python en ligne (Google Colab, Replit, ou tout autre) pour vérifier le résultat avant de répondre.

💡 deux mots

Quitter le module