« Bonjour, Amigo ! Bilaabo va t'expliquer les différences entre une classe abstraite et une interface. Il en existe plusieurs. »
Classe abstraite | Interface |
---|---|
Héritage | |
Une classe abstraite ne peut hériter que d'une seule classe, mais elle peut hériter d'un nombre quelconque d'interfaces. | Une interface ne peut pas hériter de classes, mais elle peut hériter d'un nombre quelconque d'interfaces. |
Méthodes abstraites | |
Une classe abstraite peut contenir des méthodes abstraites. Mais elle peut aussi ne pas en avoir du tout. | Toutes les méthodes non statiques et qui ne sont pas des méthodes par défaut d'une interface sont abstraites, c'est-à-dire qu'elles n'ont pas d'implémentation. Une interface peut ne pas avoir de méthodes du tout. |
Méthodes avec une implémentation | |
Une classe abstraite peut contenir des méthodes avec une implémentation. | Une interface peut avoir des méthodes par défaut. |
Données | |
Aucune restriction. | Une interface ne contient que des données statiques finales publiques. |
Création d'objets | |
Tu ne peux pas créer une instance d'une classe abstraite. | Tu ne peux pas créer une instance d'une interface. |
« C'est ce que j'ai compris. Récapitulé de façon succincte et sans fioritures. »
« Merci, Amigo. »
GO TO FULL VERSION