是否可以在 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();
}

更新於:2020-6-29

7K+ 瀏覽量

開啟你的 職業生涯

完成課程以獲得認證

開始學習
廣告
© . All rights reserved.