[RESOLVIDO] Java - Classes abstratas x Interfaces

3 respostas Resolvido
WillianC19

Boa noite pessoal, :waxing_crescent_moon: :coffee:

Atualmente estou estudando Java, e em uma das aulas foi apresentado as classes abstratas e interfaces. Entendi o conceito e já fiz alguns testes também com ambas. A diferença que percebi foi a declaração de variáveis nas classes abstratas (que não é possível nas interfaces), e a possibilidade de implementar mais de uma interface em uma classe (o que não é possivel em subclasses).
Então fique pensando se não seria melhor trabalhar apenas com a classe mãe e definir os métodos abstratos, e interfaces só seriam interessantes quando fossem necessário implementar mais de uma?

A dúvida que eu tenho é a seguinte, em quais casos seria melhor implementar classes abstratas do que interfaces e vice-versa? Se puderem compartilhar alguma experiência de vocês que foi melhor usar um do que o outro, serei grato! :grinning::pray:

3 Respostas

A
Solucao aceita

Oi @WillianC19,

Uma referência que gosto muito para esse tipo de pergunta é o livro Effective Java do Joshua Block.

Aqui um post (baseado no livro) sobre essa questão: https://dev.to/kylec32/effective-java-tuesday-prefer-interfaces-to-abstract-classes-21cn

Da minha própria experiência, é bem comum eu criar interfaces mas não lembro a última vez que eu usei uma abstract class.

staroski

Os materiais do Robert Cecil Martin (Uncle Bob), autor do “Código Limpo” e “O Codificador Limpo”, também explicam a flexibilidade que as interfaces proporcionam ao contrário do acoplamento forte que ocorre com herança de classes.
Dê uma lida nos materiais dele, disponíveis nesta página.

javaflex

Na maioria dos casos nao precisa usar ambos. Só adicione complexidade se realmente precisar. Classe abstrata gera amarrações e interface gera burocracia quando não há necessidade de um contrato. Só com experiência real vai saber quando usar ou nao, eu evito o máximo ambos. Ambos sao mais pra requisitos nao funcionais que já usamos pronto de frameworks. Pro Negócio que é muito dinâmico raramente uso.

Criado 17 de junho de 2020
Ultima resposta 17 de jun. de 2020
Respostas 3
Participantes 4