Sobes.tech
Junior — Middle

Em que situações o uso de herança é considerado incorreto ou indesejado na programação orientada a objetos?

sobes.tech IA

Resposta da IA

O uso de herança é considerado incorreto ou indesejado nas seguintes situações:

  • Quando a subclasse não é um tipo verdadeiro da classe base (violação do princípio de substituição de Liskov).
  • Se a herança for usada para reutilizar código e não para expressar uma relação de "é um" (is-a).
  • Quando a hierarquia se torna demasiado profunda e complexa, dificultando a manutenção e compreensão do código.
  • Se a herança levar a um acoplamento forte entre classes, dificultando alterações e extensões.
  • Nos casos em que a composição (has-a) é preferível à herança para aumentar a flexibilidade.

Por exemplo, se a classe Car herda de Engine, isso é incorreto, pois um carro não é um motor. É melhor usar composição: Car contém um objeto Engine.