Qual é a diferença entre métodos abstratos e interfaces?

Vamos começar com métodos abstratos e classes abstratas:

Geralmente para iniciantes, abstract é uma palavra-chave usada antes de métodos e classes.

Declaramos métodos em uma classe como abstratos porque queremos que esse método execute tarefas diferentes com base em objetos diferentes. e os métodos declarados como abstratos não devem ter corpo de método. Aqui, quando o método é abstrato, a classe deve ser declarada como classe abstrata.

Def de

Classe abstrata

: Uma classe deve ser feita abstrata, quando houver 0 ou mais métodos abstratos nessa classe. Esses métodos menos abstratos do corpo podem receber corpo (implementação desses métodos) nas subclasses. Uma classe abstrata pode ter métodos concretos, métodos abstratos e variáveis ​​de instância.

Def de

Interface:

As interfaces têm métodos abstratos públicos e variáveis ​​finais estáticas públicas (constantes) nelas. Todos os métodos nas interfaces são abstratos públicos por padrão, e não haverá métodos concretos como classes abstratas. Portanto, todos os métodos nas interfaces devem ser implementados nas subclasses.

Diferença de

Classe abstrata e interface:

Você precisa

Resumo

classe quando houver recursos comuns (métodos de instância) que devem estar disponíveis para todos os objetos e você precisar

Interfaces

quando você precisa de cada recurso (métodos abstratos), requer uma implementação diferente, dependendo dos diferentes objetos.

Espero que isto ajude.