是否可以在 Java 中在介面內部定義建構函式?
不,在 Java 中不能在介面內定義建構函式。
截至 Java7,只能有公共、靜態、最終變數和公共、抽象方法。
從 Java8 開始,介面允許預設方法和靜態方法。
從 Java9 開始,介面允許私有和私有靜態方法。
此外,在介面中定義的所有方法(上述方法除外)都應由其他類(覆蓋)實現。但是,無法在 Java 中覆蓋建構函式。
即便如此,如果嘗試在介面中定義建構函式,仍會產生編譯時錯誤。
示例
在以下 Java 程式中,我們嘗試在介面內定義建構函式。
public interface MyInterface{
public abstract MyInterface();
/*{
System.out.println("This is the constructor of the interface");
}*/
public static final int num = 10;
public abstract void demo();
}編譯時錯誤
編譯時,以上程式會生成以下錯誤
輸出
MyInterface.java:2: error: expected public abstract MyInterface(); ^ 1 error
簡而言之,它不接受介面中沒有返回型別的方法。如果向 MyInterface() 方法新增返回型別,則它被視為普通方法,並且程式可以在沒有錯誤的情況下編譯。
public interface MyInterface {
public abstract void MyInterface();
public static final int num = 10;
public abstract void demo();
}
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP