J'ai utilisé la fonction de refactoring "pull interface" d'Eclipse aujourd'hui pour créer une interface basée sur une classe existante. La boîte de dialogue proposait de créer toutes les nouvelles méthodes de la nouvelle interface sous forme de méthodes "abstraites".
Quel en serait l’avantage?
Je pensais que le fait que vous ayez été autorisé à déclarer les méthodes d'interface comme abstraites était une caractéristique superflue et inoffensive du langage qui n'est pas particulièrement encouragée.
Pourquoi Eclipse prendrait-il en charge un tel style, ou pourquoi quelqu'un choisirait-il volontairement de le faire?
Clarification: je ne demande pas pourquoi les méthodes d'interface sont abstraites, c'est évident. Je demande pourquoi on choisirait explicitement de les marquer comme abstraits puisque s'ils sont dans une interface, ils sont de toute façon abstraits.
abstract
mot - clé sur la déclaration de l'interface elle-même, pas sur ses membres. La réponse de @ Will ci-dessous est correcte et contient également des sources de liens valides."L'avantage de cela" (ajouter un résumé sur la déclaration des méthodes d'interface) dans eclipse serait un vieux problème de compatibilité avec le compilateur jdt eclipse dans jdk1.3
Puisque le compilateur Eclipse est susceptible d'être au niveau de conformité 1.4 (voir
Workbench>Preferences>Java>Compiler>JDK Compliance
), ou d'utiliser au moins 1,3 bibliothèques de classes si vous utilisez le mode de conformité 1.3, la présence de "abstract" n'est pas requise dans la plupart des projets eclipse actuels.la source
De Java SE 7 JLS (Java Language Specification): "Il est permis, mais déconseillé par souci de style, de spécifier de manière redondante le modificateur public et / ou abstrait pour une méthode déclarée dans une interface."
Pour Java SE 5.0 : "Pour la compatibilité avec les anciennes versions de la plate-forme Java, il est autorisé mais déconseillé, par souci de style, de spécifier de manière redondante le modificateur abstrait pour les méthodes déclarées dans les interfaces."
la source
Selon JLS, les méthodes des interfaces sont abstraites par défaut, le mot-clé est donc redondant. Sachant cela, je ne l'utiliserais jamais pour "éviter le désordre de présentation".
la source