Files
training.python.beginner/source/07-objects/inheritance/polymorphism.py
2025-07-04 19:26:39 +02:00

65 lines
1.4 KiB
Python

from typing import Optional
class Animal(object):
"""
Classe de base pour tous les animaux.
"""
pattes: int = None
vertebre: Optional[bool] = None
def manger(self):
"""
Méthode de base pour que l'animal mange.
On ne définit aucun comportement particulier ici.
"""
print("Je suis un animal et je mange.")
class Chien(Animal):
"""
Classe pour le chien.
"""
pattes: int = 4
vertebre = True
def manger(self):
"""
Méthode pour faire manger le chien.
"""
super().manger() # Exécute le code ligne 19
print("Je dirais même plus *wouf* ! Je suis un chien qui mange.")
class Escargot(Animal):
"""
Classe pour l'escargot.
"""
pattes: int = 0
vertebre = False
def manger(self):
"""
Méthode pour faire manger l'escargot.
"""
print("Slurp *mange, mais on ne sait pas comment*")
if __name__ == "__main__":
# Créer des nouvelles instances d'animaux
escargot = Escargot()
chien = Chien()
# Et voir comment ça se comporte quand on appelle la méthode `manger`.
# Le fait que plusieurs classes héritant d'une autre classe ont des comportements
# différents pour les mêmes méthodes s'appelle du polymorphisme.
# Les méthodes peuvent aussi avoir des arguments différents mais le même nom.
print(escargot.manger())
print(chien.manger())