« 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. »