Sobes.tech
Junior

Qual é a diferença entre classes abstratas e interfaces?

sobes.tech IA

Resposta da IA

Classe abstrata:

  • Pode conter métodos abstratos (sem implementação) e métodos concretos (com implementação).
  • Pode conter campos (variáveis de instância).
  • Pode ter construtores.
  • Permite herança simples (uma classe pode herdar de uma classe abstrata).
  • É usada para definir a estrutura básica e o comportamento geral de classes relacionadas.

Interface:

  • Pode conter apenas métodos abstratos (algumas linguagens, como Java a partir da versão 8, permitem métodos default e static com implementação).
  • Não pode conter campos de instância (apenas constantes).
  • Não pode ter construtores.
  • Permite implementação múltipla (uma classe pode implementar várias interfaces).
  • É usada para definir um contrato que as classes devem cumprir.