En Comment programmer en Java sur les classes abstraites :
Parce qu'ils ne sont utilisés que comme superc nous les appelons des superclasses abstraites. Ces classes ne peuvent pas être utilisées pour instancier des objets, car les classes abstraites sont incomplètes. Les sous-classes doivent déclarer les "pièces manquantes" pour devenir des "co à partir desquelles on peut instancier des objets. Sinon, ces sous-classes, elles aussi seront abstraites.
Pour répondre à votre question "Quelle est la raison d'utiliser des interfaces ?":
Un site objectif de la classe abstraite est de fournir une aide appropriée dont d'autres classes peuvent hériter et ainsi partager une conception commune.
Par opposition à une interface :
Un site l'interface décrit un ensemble de méthodes qui objet, mais ne fournit pas d'implémentations concrètes pour toutes les méthodes ... Une fois qu'une classe implémente une interface, tous les objets de cette classe ont une relation is-a avec le type d'interface, et a sont garantis de fournir la fonctionnalité décrite par l'interface. l'interface. Cela vaut également pour toutes les sous-classes de cette classe.
Donc, pour répondre à votre question "Je me demandais quand je devais utiliser les interfaces", je pense que vous devez utiliser les interfaces lorsque vous voulez une implémentation complète et utiliser les classes abstraites lorsque vous voulez des éléments partiels pour votre conception (pour la réutilisation).