← ← ← 08/06/2025, 12:14:01 | Postado por: Danilo Maia Florenzano
Usar herança quando precisar de:
Usar composição quando precisar de:
Usar uma interface quando precisar de:
Ou seja, a herança é bem vinda quando, e somente quando, as duas necessidades forem verdade. Do contrario, prefira sempre composição.
É importante ressaltar que a herança pode levar a um acoplamento mais forte entre as classes, o que pode dificultar a manutenção e evolução do código. A composição, por outro lado, promove um acoplamento mais fraco, permitindo maior flexibilidade e reutilização de componentes. Por isso, muitos autores recomendam a composição como uma abordagem preferencial na Programação Orientada a Objetos.
No exemplo da imagem, a herança não é justificada porque nenhuma das classes herdeiras sobrescreve o método da classe principal (polimorfismo), apenas é reaproveitado o Metodo1()
(reaproveitamento de código).
Nesse caso, como apenas um dos requisitos é preenchido, é melhor usar composição.
Há também a abordagem de não usar herança mesmo em casos que preencham os dois requisitos. Pois ambos podem ser satisfeitos através da combinação de interfaces e composição.
Only Use Inheritance If You Want Both of These - by Christopher Okhravi