Princípio da Substituição de Liskov: O Verdadeiro Significado da Herança

Este artigo mergulha no Princípio da Substituição de Liskov (LSP), um princípio SOLID frequentemente mal compreendido. Usando o problema clássico retângulo-quadrado, ele ilustra violações comuns do LSP: subtipos falhando em substituir totalmente os tipos base. O autor defende o uso de composição e interfaces em vez de herança para evitar violações do LSP, fornecendo um exemplo prático com processamento de pagamento. Violações comuns do LSP, como lançar exceções inesperadas e retornar resultados inconsistentes com o tipo base, são descritas, juntamente com como garantir a conformidade do LSP por meio de testes de contrato e pré/pós-condições claras. Em última análise, o artigo enfatiza que o LSP é mais do que apenas herança — trata-se de compatibilidade comportamental e atendimento de expectativas. Seguir o LSP leva a um código mais confiável e manutenível.