« 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