Princípios SOLID Desmistificados — (L)
As classes pai devem ser substituíveis por suas classes filhas com facilidade, ou seja, se a classe Rectangle for um subtipo da classe Shape, devemos ser capazes de substituir Shape por Rectangle sem interromper o fluxo funcional.
Cenário de amostra
Considere um aplicativo que tenha uma classe base Animal que tenha muitas subclasses como Dog , Cat e etc. Cada subclasse deve ser substituível pela classe base Animal .
A classe Snail é uma subclasse que não pode implementar todos os métodos da classe base Animal , de modo que, se for substituída pela classe base, interromperá o fluxo funcional do aplicativo.
Todas as subclasses são substituíveis pela base Animal, exceto a classe Snail, portanto, isso viola o Princípio de Substituição de Liskov.
O objetivo desse princípio é basicamente impedir que nosso código seja interrompido devido a novas funcionalidades. Isso também está de acordo com nossos dois primeiros princípios, Responsabilidade Única e Princípio Aberto e Fechado .
Principais benefícios
- Pode usar a subclasse de uma classe pai da mesma forma que usa a classe pai sem quebrar nada.
- As subclasses podem modificar/sobrescrever os métodos da classe pai.
- As subclasses não podem definir uma nova função não presente na classe pai.





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)