Dans une interface, on ne peut définir aucun code, ni aucune variable. Dans une classe abstraite, certaines méthodes (ou même toutes) peuvent être définies, et on peut de même définir des variables. Mais comme tu l'as remarqué, il y a effectivement très peu de différences entre une interface et une classe abstraite sans méthodes définies ni aucune variable. Dans ce cas, il faut d'ailleurs clairement utiliser une interface, puisqu'une classe abstraite n'apporte aucun avantage et ajoute une contreinte forte du fait que l'héritage, en Java, n'est pas multiple.
Tout le problème vient d'ailleurs de là : les interfaces servent à s'en sortir quand on aurait besoin d'héritage multiple. Le principale intéret des interfaces, c'est de pouvoir utiliser le polymorphisme sur des objets qui héritent déja d'un autre objet.
[edtdd]--Message édité par Matafan--[/edtdd]