O princípio de substituição de Liskov afirma que um pedaço de código deve permanecer correto se uma superclasse for substituída por sua subclasse (parafraseando). O que eu não entendo; Por que nos importamos com essa propriedade? Ela torna nosso código mais reutilizável, flexível ou sustentável?
Eu apreciaria um exemplo de código que respeitasse o princípio e que o violasse ao explicar a relevância da propriedade de substituição.