Ola, eu gostaria de expor um exemplo pra poder tirar uma dúvida minha:
Em um dos sistema que eu trabalho nos tínhamos duas telas para elaboração de documentos, ma delas é a própria elaboração e a outra é uma tela mais destinada ao gestor que irá revisar o documento que foi elaborado e dar prosseguimento ao tramite do mesmo. Assim sendo, o código entre essas duas telas era extremamente comum, uma verdadeira replicação que acabava dificultando muito a manutenção (o desenvolvedor sempre mexia em uma tela e não mexia na outra). Pra deixar o código melhor de ser mantido nos tomamos a decisão de criar uma classe um pouco mais genérica onde ela abrigaria toda a codificação em comum e fizemos os dois beans herdarem desta classe, ou seja, usando o extends.
Eu gostaria de saber se essa foi uma das poucas vezes em que a herança seria válida pois o maior problema que eu tive quanto a preferência por usar interfaces é justamente a replicação de código porque nela não existe a implementação que, na maioria das vezes é igual pra vários casos em específico.
Eu sempre tive em mente que era melhor extender a classe e deixar na super a codificação mais genérica e nas filhas que precisarem mudar, sobreescrever os métodos.
Agradeço desde já.