Por que, em Java, se deve priorizar o uso de interfaces, ao invés de herança
com classes?
-
Ambas permitem polimorfismo.
-
Interfaces permitem herança múltipla e classes não.
-
Interfaces são importantes quando precisa garantir que todas as classes que implementam tenham os mesmos métodos, pois existe a obrigatoriedade de implementar na classe todas as assinaturas de métodos da interface.
-
Herança de classe é importante para reuso de código. Você tem classes com atributos/comportamentos em comum e cria uma classe generalista da qual todas herdam, assim não precisando repetir código.
Ou seja, você prioriza de acordo com o que precisa no seu projeto.
A partir do momento que você usa a instância de um objeto , você está reutilizando código.
A herança de classes gera um alto acoplamento o que por consequência vai dificultar manutenções futuras no sistema.
Herança não é reutilização e gera um alto acoplamento.
É muito mais flexível usar herança de interfaces, e realizar a implementação através de composição de classes.
Obrigado pela correção.