English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
in JavaInterfacciasimilano alle classi, ma contengono solo metodi e campi abstracti finali e statici.
甲Metodi staticivengono dichiarati con la parola chiave statica, che viene caricata insieme alla classe. Puoi accedere ai metodi statici con il nome della classe senza necessità di istanziare un'istanza.
Dalla versione Java 8 in poi, puoi usare metodi statici negli interfacce (con corpo). Devi chiamarli col nome dell'interfaccia, come faresti con i metodi statici delle classi.
Nell'esempio seguente, definiamo un metodo statico nell'interfaccia e lo accediamo da una classe che implementa l'interfaccia.
interface MyInterface{ public void demo(); public static void display() { System.out.println("This is a static method"); } } public class InterfaceExample{ public void demo() { System.out.println("This is the implementation of the demo method"); } public static void main(String args[]) { InterfaceExample obj = new InterfaceExample(); obj.demo(); MyInterface.display(); } }
Risultato di output
This is the implementation of the demo method This is a static method
甲Static blockÈ un blocco di codice che utilizza la chiave statica. Di solito, questi vengono utilizzati per inizializzare i membri statici. Il JVM esegue i blocchi statici prima del metodo main durante il caricamento della classe.
public class MyClass { static{ System.out.println("Hello this is a static block"); } public static void main(String args[]){ System.out.println("This is main method"); } }
Risultato di output
Hello this is a static block This is main method
Principalmente, se non sono stati inizializzati i blocchi statici al momento della dichiarazione, vengono utilizzati per inizializzare le variabili di classe / statiche.
Quando si dichiara un campo nell'interfaccia, deve essere assegnato un valore, altrimenti viene generato un errore di compilazione.
interface Test{ public abstract void demo(); public static final int num; }
Test.java:3: error: = expected public static final int num; ^ 1 error
Quando assegni un valore a una variabile statica finale nell'interfaccia, risolvi questo problema.
interface Test{ public abstract void demo(); public static final int num = 400; }
Quindi, non è necessario includere blocchi statici nell'interfaccia.