Índice
Embora ambas as estruturas possam parecer semelhantes, pois forçam as classes que as usam a criar os métodos que possuem e os usam para que possam ser válidos, elas têm diferenças fundamentais entre elas, o que pode nos dar mais luz sobre como podemos usá-las .As diferenças, embora sejam subtis, permitem-nos utilizar ambas as estruturas mesmo em combinação, desta forma podemos conseguir uma maior ordem no nosso projeto e criar aplicações que nos permitem reproduzir melhor os objetos do mundo real em formato digital.
RestriçõesA principal diferença que vemos entre classes abstratas e interfaces é que a primeira é uma classe e a segunda não é, mesmo que a interface tem uma estrutura semelhante enfrenta restrições que não são encontradas em um classe abstrata.
VariáveisO classe abstrata não tem restrição ao uso de variáveis, porém o interface se tiver, de fato todas as variáveis que vamos usar devem ser público, estático ou final.
Neste caso, o construtor da classe abstrata deve ser invocado por meio de subclasses, o que deixa de fora a possibilidade de instanciar por meio do operador novo.
No caso de interface, esta não pode ter construtores por não ser uma classe, o que nos faz também descartar a criação de instâncias com o operador novo.
MétodosEm uma interface os métodos devem ser resumo público Por outro lado, na classe abstrata podemos colocar qualquer tipo de método sem problemas, o que nos faz mais uma diferença.
Outro ponto que devemos levar em consideração é a forma de fazer herança e implementação que podemos alcançar com essas duas estruturas em Java, sabemos que quando fazemos herança Em uma classe, só podemos herdar diretamente de uma classe superior, ou seja, se quisermos herdar de duas classes diferentes, devemos criar um efeito cascata, onde uma primeira classe herda da classe superior e outra classe herda da isso para obter sua funcionalidade e a de sua classe pai.
Nas interfaces Este problema não ocorre, na verdade podemos herdar diretamente de várias interfaces, portanto, se quisermos obter seus métodos, podemos fazê-lo sem problemas.