Quelle est la différence entre les mots clés suivants en Java: implements
, extends
?
Un interface
est une spécification abstraite de la façon dont un class
doit se comporter tandis qu'un class
est une implémentation concrète d'une telle spécification.
Par conséquent, lorsque vous écrivez implements
, vous dites que vous remplissez une spécification abstraite dans l'implémentation que vous avez écrite.
extends
signifie que vous prenez soit une implémentation (class
) soit une spécification (interface
) et que vous y ajoutez des fonctionnalités différentes ou nouvelles (ou modifiez la spécification de son comportement), modifiant ainsi son comportement et étendre - ing.
une classe étend une autre classe et implémente une interface. interface étend une autre interface.
L'interface n'a pas de méthodes implémentées, toutes les méthodes définies sont vides, donc si la classe hérite de l'interface, elle devrait implémenter ce sont des méthodes. Mais si Class1 hérite de Class2, il a déjà quelques méthodes de travail (de Class2) et juste étend Class2.