Ich habe heute die Refactoring-Funktion "Pull-Schnittstelle" von Eclipse verwendet, um eine Schnittstelle basierend auf einer vorhandenen Klasse zu erstellen. Das Dialogfeld bot an, alle neuen Methoden der neuen Schnittstelle als "abstrakte" Methoden zu erstellen.
Was wäre der Vorteil davon?
Ich dachte, dass die Tatsache, dass Sie Schnittstellenmethoden als abstrakt deklarieren durften, ein überflüssiges und harmloses Merkmal der Sprache ist, das nicht besonders gefördert wird.
Warum sollte Eclipse einen solchen Stil unterstützen oder warum sollte sich jemand freiwillig dafür entscheiden?
Klarstellung: Ich frage nicht, warum Schnittstellenmethoden abstrakt sind, das ist offensichtlich. Ich frage mich, warum man sie explizit als abstrakt markieren würde, da sie ohnehin abstrakt sind, wenn sie sich in einer Schnittstelle befinden.
abstract
Schlüsselwort in der Deklaration der Schnittstelle selbst, nicht in ihren Mitgliedern. Die Antwort von @ Will unten ist korrekt und enthält auch gültige Linkquellen."Der Vorteil davon" (Hinzufügen einer Zusammenfassung zur Deklaration von Schnittstellenmethoden) in Eclipse wäre ein altes Kompatibilitätsproblem mit dem JDT Eclipse-Compiler in JDK1.3
Da sich der Eclipse-Compiler wahrscheinlich in der 1.4-Konformitätsstufe befindet (siehe
Workbench>Preferences>Java>Compiler>JDK Compliance
) oder mindestens 1.3 Klassenbibliotheken verwendet, wenn der 1.3-Konformitätsmodus verwendet wird, ist in den meisten aktuellen Eclipse-Projekten das Vorhandensein von "abstrakt" nicht erforderlich.quelle
Aus dem Java SE 7 JLS (Java Language Specification): "Es ist zulässig, aber aus Stilgründen wird davon abgeraten, den öffentlichen und / oder abstrakten Modifikator für eine in einer Schnittstelle deklarierte Methode redundant anzugeben."
Für Java SE 5.0 : "Aus Gründen der Kompatibilität mit älteren Versionen der Java-Plattform ist es zulässig, den abstrakten Modifikator für in Schnittstellen deklarierte Methoden redundant anzugeben."
quelle
Laut JLS sind Methoden in Schnittstellen standardmäßig abstrakt, sodass das Schlüsselwort redundant ist. Wenn ich das wüsste, würde ich es niemals verwenden, um "Präsentationsunordnung zu vermeiden".
quelle