Sobes.tech
Junior

Quelle est la différence entre les classes abstraites et les interfaces?

sobes.tech IA

Réponse de l'IA

Classe abstraite :

  • Peut contenir des méthodes abstraites (sans implémentation) et des méthodes concrètes (avec implémentation).
  • Peut contenir des champs (variables d'instance).
  • Peut avoir des constructeurs.
  • Permet l'héritage simple (une classe peut hériter d'une classe abstraite).
  • Est utilisée pour définir la structure de base et le comportement général des classes liées.

Interface :

  • Peut contenir uniquement des méthodes abstraites (certains langages, comme Java à partir de la version 8, permettent des méthodes default et static avec implémentation).
  • Ne peut pas contenir de champs d'instance (seules des constantes).
  • Ne peut pas avoir de constructeurs.
  • Permet la mise en œuvre multiple (une classe peut implémenter plusieurs interfaces).
  • Est utilisée pour définir un contrat que les classes doivent respecter.