LCP

Liskov Substitution Principle

Princípio da substituição de Liskov — Uma classe derivada deve ser substituível por sua classe base.

"Se S é um subtipo de T, então os objetos do tipo T, em um programa, podem ser substituídos pelos objetos de tipo S sem que seja necessário alterar as propriedades deste programa." ​

Na prática, todas as classes filhas (que foram implementadas através de uma herança) devem manter os mesmos comportamentos da classe pai. Isto é, classes derivadas podem ser substitutas de suas classes base, ou ainda: toda e qualquer classe derivada pode ser usada como se fosse a classe base.

Exemplo Pessoa
  • Exemplo Boa Prática:

  • Temos uma classe base Retangulo e uma classe derivada Quadrado. A classe Quadrado é uma especialização de Retangulo, onde a largura e a altura são sempre iguais para garantir que seja um quadrado. O método verificarArea funciona para ambas as classes. Isso significa que podemos substituir um objeto Retangulo por um objeto Quadrado sem afetar a corretude do programa.

  • Exemplo Má Prática:

  • A classe Quadrado herda da classe Retangulo, mas a implementação dos métodos setLargura e setAltura em Quadrado não está de acordo com o princípio. Já que não podemos substituir um objeto Retangulo por um objeto Quadrado sem afetar a corretude do programa.

Last updated