Quais as vantagens e desvantagens de usar herança em JAVA?

Estou fazendo uma atividade na faculdade, e gostaria de ouvir pessoas que já estão familiarizadas com o assunto, e usam facilmente no cotidiano como programador(a).

Só por curiosidade, o que sua apostila fala sobre herança?

Uma desvantagem é o alto acoplamento, que pode fazer o código ficar difícil de manter, dependendo do caso.

1 curtida

Bem, não temos apostilas. O professor no começo do curso nos passa 2 livros (Use a cabeça - JAVA; e JAVA como programar). Nosso material é disponibilizado em vídeos gravados pelo próprio professor, ai ele sempre passa pesquisa.

Acho que “Quais as vantagens e desvantagens” é a pergunta errada a se fazer.

Na minha opinião, o mais adequado é entender o mecanismo, as características (como funciona, pra que serve, seus pontos fortes e fracos, em quais situações é mais adequado e em quais não é, etc) e aí analisar caso a caso se ele é uma boa opção ou não. Se usar certo, só vai ter vantagens (ou vai ter mais vantagens do que desvantagens). Se usar errado, vai ser o oposto.

Por exemplo, mencionaram acima que herança aumenta o acoplamento. É verdade, mas isso não necessariamente é ruim. Se uma classe de fato “precisa/deve” herdar todas as características de outra (e só sobrescrever alguns pontos específicos), então o acoplamento - para este caso específico - não seria um problema (pois é algo que de fato desejamos/precisamos). Um bom exemplo é citado neste artigo, na seção “Using Inheritance Well” (mas leia todo o texto que vem antes para não perder o contexto, claro - o artigo todo é excelente e tem a ver com o assunto).

Aliás, é possível fazer código altamente acoplado e/ou difícil de manter sem usar herança Um programador ruim fará códigos ruins em qualquer linguagem, paradigma, framework, ou o que for…

Sim, eu sei que alto acoplamento geralmente é ruim, mas sem analisar o caso específico não dá pra cravar que sempre é. Eu pessoalmente não gosto dessas afirmações categóricas de que algo “sempre” ou “nunca” é bom/ruim ou deve/não deve ser usado. Muitas coisas podem valer para a maioria dos casos, mas conhecer as exceções pode ser útil caso algum dia você se depare com esta situação excepcional. Saber quando quebrar alguma regra é tão importante quanto conhecê-la e segui-la.

2 curtidas