Exposé : Le Polymorphisme et l’Héritage en Python
Introduction
En programmation orientée objet (POO), deux concepts fondamentaux permettent de
concevoir des applications flexibles, réutilisables et faciles à maintenir : l’héritage et le
polymorphisme. En Python, ces notions sont simples à implémenter grâce à sa syntaxe
intuitive.
1. L’Héritage
Définition
L’héritage est un mécanisme qui permet à une classe (appelée classe fille ou sous-classe) de
hériter des attributs et méthodes d’une autre classe (appelée classe mère ou super-classe).
Cela favorise la réutilisation du code et évite la redondance.
Syntaxe en Python
Python
class Animal:
def parler(self):
print("Cet animal fait un bruit.")
class Chien(Animal):
def parler(self):
print("Le chien aboie.")
Explication
Dans cet exemple, Chien hérite de Animal. Elle peut utiliser ou redéfinir les méthodes de la
classe mère. Ici, la méthode parler est surchargée (override) dans la classe fille.
2. Le Polymorphisme
Définition
Le polymorphisme permet d’utiliser une même interface (méthode ou fonction) pour
différents types d’objets. Il permet d’écrire du code plus générique et extensible.
Exemple simple
Python
class Chat(Animal):
def parler(self):
print("Le chat miaule.")
def faire_parler(animal):
[Link]()
faire_parler(Chien()) # Le chien aboie.
faire_parler(Chat()) # Le chat miaule.
Explication
Ici, la fonction faire_parler peut prendre n’importe quel objet ayant une méthode parler.
C’est ça le polymorphisme : un même appel (parler) se comporte différemment selon
l’objet.
3. Polymorphisme et héritage ensemble
L’héritage favorise le polymorphisme. Grâce à l’héritage, plusieurs classes peuvent partager
une structure commune, tout en ayant des comportements spécifiques.
Exemple pratique
Python
class Oiseau(Animal):
def parler(self):
print("L’oiseau chante.")
animaux = [Chien(), Chat(), Oiseau()]
for a in animaux:
[Link]()
Résultat
nginx
Le chien aboie.
Le chat miaule.
L’oiseau chante.
Ce code montre la puissance du polymorphisme : on traite une liste d’objets différents de
manière uniforme, tout en obtenant des comportements personnalisés.
Conclusion
Le polymorphisme et l’héritage sont deux piliers de la programmation orientée objet. En
Python :
• L’héritage permet de créer des relations entre les classes et de réutiliser du code.
• Le polymorphisme permet de concevoir des fonctions et des structures plus
générales et souples.
Ces concepts rendent les programmes plus modulaires, lisibles et maintenables, ce qui est
essentiel pour les grands projets logiciels.
Bonus : Héritage multiple
Python autorise aussi l’héritage multiple, ce qui signifie qu’une classe peut hériter de
plusieurs classes.
class A:
def afficher(self):
print("A")
class B:
def afficher(self):
print("B")
class C(A, B):
pass
c = C()
[Link]() # Affiche "A" car A est prioritaire dans l'ordre d'héritage
Python suit l’ordre MRO (Method Resolution Order) pour déterminer quelle méthode
appeler.
✅ 1. Héritage simple
Algorithme HéritageSimple
Début
Classe Animal
Méthode parler()
Afficher "Cet animal fait un bruit."
Classe Chien hérite de Animal
Méthode parler()
Afficher "Le chien aboie."
Variable a : Animal
a ← nouvel objet de type Animal
[Link]()
Variable c : Chien
c ← nouvel objet de type Chien
[Link]()
Fin
✅ 2. Polymorphisme avec une fonction
Algorithme PolymorphismeFonction
Début
Classe Animal
Méthode parler()
Afficher "Cet animal fait un bruit."
Classe Chien hérite de Animal
Méthode parler()
Afficher "Le chien aboie."
Classe Chat hérite de Animal
Méthode parler()
Afficher "Le chat miaule."
Procédure faire_parler(animal : Animal)
[Link]()
faire_parler(nouvel objet de type Chien)
faire_parler(nouvel objet de type Chat)
Fin
✅ 3. Polymorphisme avec boucle
Algorithme PolymorphismeBoucle
Début
Classe Animal
Méthode parler()
Afficher "Cet animal fait un bruit."
Classe Chien hérite de Animal
Méthode parler()
Afficher "Le chien aboie."
Classe Chat hérite de Animal
Méthode parler()
Afficher "Le chat miaule."
Classe Oiseau hérite de Animal
Méthode parler()
Afficher "L’oiseau chante."
Déclarer animaux comme tableau de Animal
animaux ← [nouveau Chien, nouveau Chat, nouveau Oiseau]
Pour chaque animal dans animaux faire
[Link]()
FinPour
Fin
✅ 4. Héritage multiple
plaintext
CopierModifier
Algorithme HeritageMultiple
Début
Classe A
Méthode afficher()
Afficher "A"
Classe B
Méthode afficher()
Afficher "B"
Classe C hérite de A et B
Variable c : C
c ← nouvel objet de type C
[Link]() // Affiche "A" car priorité à la première classe héritée
(A)
Fin