65 lines
1.4 KiB
Python
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())
|