Avancé
🧠 Fondamentaux
30 XP
0 personnes ont réussi
LSP : Substitution de Liskov
Le principe de substitution de Liskov dit qu'une sous-classe doit pouvoir remplacer sa classe parente partout ou celle-ci est utilisee, sans casser le programme.
Exemple de violation classique : le carre et le rectangle. Si Carre herite de Rectangle et qu'on modifie la largeur, la hauteur change aussi. Du code qui attend un Rectangle normal serait surpris.
Un autre exemple concret : les oiseaux. Tous les oiseaux se deplacent, mais tous ne volent pas. Si Pingouin herite d'OiseauVolant, on viole le LSP car un pingouin ne sait pas voler.
Crée : - Oiseau avec se_deplacer() retournant 'Je me deplace' - OiseauVolant(Oiseau) qui surcharge se_deplacer() avec 'Je vole' - Pingouin(Oiseau) qui surcharge se_deplacer() avec 'Je nage' - Une fonction faire_deplacer(oiseau) qui appelle oiseau.se_deplacer()
faire_deplacer() doit fonctionner avec n'importe quel type d'oiseau.
Exemple : faire_deplacer(OiseauVolant()) # 'Je vole' faire_deplacer(Pingouin()) # 'Je nage' faire_deplacer(Oiseau()) # 'Je me deplace'