Então toda classe que usa o @Overide e muda a logica do metodo, esta ferindo o principio do LSP?
Então toda classe que usa o @Overide e muda a logica do metodo, esta ferindo o principio do LSP?
Olá Ti!
O Princípio da Substituição de Liskov (LSP) estabelece que uma classe derivada deve ser substituível por sua classe base sem quebrar o comportamento do programa. Ou seja, se uma classe A é uma classe base de uma classe B, então B deve poder ser usada no lugar de A sem que o comportamento do programa seja alterado.
Quando usamos a anotação @Override em um método de uma classe derivada, estamos sobrescrevendo o comportamento do método da classe base. Isso não significa, necessariamente, que estamos violando o LSP. O que viola o LSP é se a classe derivada altera o comportamento do método de tal forma que o programa não funcione corretamente quando a classe derivada é usada no lugar da classe base.
Por exemplo, se a classe base tem um método que retorna um número inteiro e a classe derivada sobrescreve esse método para retornar uma string, então a classe derivada viola o LSP, pois não pode ser usada no lugar da classe base sem quebrar o comportamento do programa.
Espero ter ajudado a esclarecer sua dúvida sobre o LSP. Se tiver mais alguma pergunta, é só perguntar!
Espero ter ajudado e bons estudos!