Carré et rectangle
L'exemple classique d'un problème qui viole le principe de substitution de Liskov est le problème du cercle et de l'ellipse, parfois appelé problème du carré et du rectangle.
Il semble que vous devriez pouvoir définir une classe Rectangle
, avec les attributs h
et w
(pour la hauteur et la largeur), puis définir une classe Square
qui hérite de la classe Rectangle
. Après tout, un carré est un rectangle !
Malheureusement, cette intuition ne s'applique pas à la conception orientée objet.
Cet exercice fait partie du cours
Programmation orientée objet en Python
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Define a Rectangle class
____
# Define a Square class
____