Quadrato e rettangolo
Il classico esempio di problema che viola il Principio di sostituzione di Liskov è il problema Cerchio-Ellisse, a volte chiamato anche problema Quadrato-Rettangolo.
A prima vista, sembrerebbe naturale definire una classe Rectangle, con attributi h e w (altezza e larghezza), e poi definire una classe Square che eredita da Rectangle. Dopotutto, un quadrato "è un" rettangolo!
Purtroppo, questa intuizione non si applica al design orientato agli oggetti.
Questo esercizio fa parte del corso
Programmazione orientata agli oggetti in Python
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Define a Rectangle class
____
# Define a Square class
____