Resumo
Classes Abstratas
É uma criação de superclasses com declarações sem definições de métodos que permite a criação de métodos declarados como abstratos. Esses métodos são somente declarados com seus nomes, modificadores, tipo de retorno e lista de argumentos, que não tenha algum comando da linguagem que este método deva executar.
O modificador abstract eles estão sendo declarados nos métodos abstratos e a classe também pode ser declarada mesmo que nenhum método tenha sido abstrato. Quando uma classe herda de uma classe, obrigatoriamente, implementa todos os métodos declarados como abstratos na classe ancestral, se tiver métodos abstratos na classe e nenhuma implementação será obrigatória .Classes abstratas podem ser métodos declarados como estáticos que não seja abstrato, e os métodos estáticos de classes abstratas podem ser executados na mesma forma que os estáticos.
Interfaces
É quando a classe não tem um método abstrato, usamos a interface modo diferente para ter uma função similar à classe abstrata, e a interface não pode ser instanciada e todos os métodos são abstract e public.
Na sua inicialização a declaração dos campos são static e final. E a única diferencia entre as classes abstratas e interfaces é uma classe herdeira que só pode herdar de uma classe abstrata ou não e implementar várias classes interfaces simultaneamente. O mecanismo da interface é simplificado na implementação de uma herança múltipla em Java, para implementar mais de uma interface determinando os métodos da classe herdeira.
Nas bibliotecas constantes as interfaces podem ser uteis para implementar, são as interfaces contem campos e a classe que terá acesso aos campos.