2012-11-27 8 views

risposta

8

Non c'è alcuna differenza: static è implicita - tutte le interfacce sono effettivamente statici.

L'utilizzo o meno o la parola chiave static è una questione di stile. Personalmente, preferisco usare static in quanto è in linea con la semantica di una classe statica interna.

+2

I preferiscono usare troppo. Allo stesso modo con le dichiarazioni interne di "enum", solo per non confondere le persone che non conoscono questo avvertimento, come come si possono dichiarare i metodi di interfaccia senza un modificatore di accesso poiché sono intrinsecamente "pubblici". +1 – Brian

0

le interfacce sono intrinsecamente statiche. Non è possibile dichiarare un'interfaccia all'interno di un blocco. Ad esempio, il codice seguente estratto non viene compilato perché il HelloThere interfaccia è definita all'interno del corpo del metodo greetInEnglish:

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(); 
} 
Problemi correlati