Ich kenne den Unterschied zwischen "public interface" und "public abstract interface", aber bei der Anwendung auf Methoden gibt es Unterschiede?
%Vor%oder
%Vor%In Schnittstellen deklarierte Methoden sind standardmäßig sowohl öffentlich als auch abstrakt.
Doch könnte man:
%Vor%Es wird jedoch davon abgeraten, diese Modifikatoren zu verwenden. So wird der abstrakte Modifikator auf die Interface-Deklaration angewendet.
Besonders in Bezug auf Ihre Frage:
"Aus Gründen der Kompatibilität mit älteren Versionen der Java-Plattform ist es zulässig, aber aus Stilgründen überflüssig, den abstrakten Modifizierer für Methoden anzugeben, die in Schnittstellen deklariert sind."
Quelle: Ссылка
Abschnitt 9.4: Abstrakte Methodendeklarationen.
Eine Randnotiz; In einer Schnittstelle definierte Werte sind public static final meine Vorgabe also
int VALUE = 5;
ist dasselbe wie
public static final int WERT = 5;
in einer Schnittstelle.
Nein. Sie können abstract
für eine Methode nur auf eine abstrakte Basisklasse anwenden.
Interfaces spezifizieren die Menge der Methoden, die letztlich von einer konkreten (nicht abstrakten Klasse) implementiert werden müssen.
Abstract gibt eine Methode an, die nicht in einer abstrakten Basisklasse implementiert ist und muss in einer konkreten Unterklasse implementiert werden muss.
(Beachten Sie auch, dass das Schlüsselwort public
bei Methodenspezifikationen für eine Schnittstelle überflüssig ist)