Exercices POO Héritage multiple et MRO
🎉

Bravo!

Intermédiaire 🧠 Fondamentaux 20 XP 0 personnes ont réussi

Héritage multiple et MRO

En Python, une classe peut heriter de plusieurs classes parentes en meme temps. C'est l'héritage multiple. Quand tu ecris class Canard(Volant, Nageant), le Canard herite a la fois des méthodes de Volant et de Nageant.

Mais que se passe-t-il si les deux parents ont une méthode avec le meme nom ? Python utilise un ordre de resolution appele MRO (Method Resolution Order). L'ordre dans lequel tu listes les parents compte : le premier parent est prioritaire.

Par exemple :

class A:
def saluer(self):
return 'Bonjour de A'

class B:
def saluer(self):
return 'Bonjour de B'

class C(A, B):
pass

C().saluer() # renvoie 'Bonjour de A' car A est avant B

Crée trois classes :
- Volant avec une méthode voler() qui retourne 'Je vole'
- Nageant avec une méthode nager() qui retourne 'Je nage'
- Canard(Volant, Nageant) qui herite des deux et ajoute parler() retournant 'Coin coin'

Exemple :
c = Canard()
c.voler() # renvoie 'Je vole'
c.nager() # renvoie 'Je nage'
c.parler() # renvoie 'Coin coin'

Tests (3/4)

Voler
assert Canard().voler() == 'Je vole'
Nager
assert Canard().nager() == 'Je nage'
Parler
assert Canard().parler() == 'Coin coin'

+ 0 tests cachés

Indices (3 disponibles)

solution.py