2012-11-27 3 views
6

Ich frage mich, was ist der Unterschied zwischen statische Schnittstelle mit der üblichen Schnittstelle ohne ein solches Schlüsselwort in Java?
Und wann und wo sollten wir das statische Schlüsselwort vor Schnittstelle verwenden. Und warum sollten wir es verwenden? Sie können diese Schnittstelle als Beispiel nehmen
Vielen Dank!
public static interface Map.Entry<K,V>Was ist der Unterschied zwischen der statischen Schnittstelle mit der üblichen Schnittstelle ohne ein solches Schlüsselwort in Java?

Antwort

8

Es gibt keinen Unterschied: static ist impliziert - alle Schnittstellen sind effektiv statisch.

Die Verwendung oder nicht oder das static Schlüsselwort ist eine Frage des Stils. Persönlich bevorzuge ich static, da es mit der Semantik einer inneren statischen Klasse übereinstimmt.

+2

ziehe ich es auch zu benutzen. Ebenso mit inneren 'enum'-Deklarationen, nur um Leute, die diesen Vorbehalt nicht kennen, nicht zu verwirren, etwa wie man Interface-Methoden ohne Access Modifier deklarieren kann, da sie von Natur aus "public" sind. +1 – Brian

0

Schnittstellen sind von Natur aus statisch. Sie können keine Schnittstelle innerhalb eines Blocks deklarieren. Zum Beispiel ist der folgende Codeauszug nicht kompilieren, da die Schnittstelle HelloThere im Inneren des Körpers des Verfahrens greetInEnglish definiert:

public void greetInEnglish() { 
    interface HelloThere { 
     public void greet(); 
    } 
    class EnglishHelloThere implements HelloThere { 
     public void greet() { 
      System.out.println("Hello " + name); 
     } 
    } 
    HelloThere myGreeting = new EnglishHelloThere(); 
    myGreeting.greet(); 
} 
Verwandte Themen