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.