Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Quadrado extends Retangulo

Olá para todos!

Eu entendi como não violar o conceito, mas como seria a forma correta de calcular a área do quadrado sem violar o Liskov Principle ?

O ideal seria Quadrado não estender de Retangulo ? ou Ou ter uma interface FiguraGeometrica, onde ambos vão dar Implements de alguma função Area(), e cada um Quadrado e Retangulo, vão receber os valores que precisam ?

Fico na espera da melhor forma de resolver

2 respostas
solução

Acredito que você mesmo deu a resposta.

Na minha humilde opinião de júnior, as duas soluções que você deu são válidas. Mas, me parece mais assertivo se as duas classes, retângulo e quadrado, estendessem de outra abstração. Porque quando se tem uma herança de retângulo para quadrado, seria como se o quadrado "fosse um" retângulo, o que não é bem verdade.

Porém, as duas são formas geométricas. Assim, a solução de quadrado e retângulo estenderem de FiguraGeometrica resolveria de maneira elegante.

Espero ter contribuído para discussão.

Obrigado Maycon pela ajuda.