Java 介面的變數可以宣告為私有和受保護的嗎?


Java 中的介面類似於類,但它只包含抽象方法和欄位,這些欄位是 final 和 static 的。

介面的私有欄位

如果介面的欄位是私有的,則無法在實現類中訪問它們。

如果嘗試將介面的欄位宣告為私有,則會生成一個編譯時錯誤,提示“此處不允許使用修飾符 private”。

示例

在下面的 Java 示例中,我們嘗試將介面的欄位和方法宣告為私有。

public interface MyInterface{
   private static final int num = 10;
   private abstract void demo();
}

編譯時錯誤

編譯時,上述程式會生成以下錯誤

輸出

MyInterface.java:2: error: modifier private not allowed here
   private static final int num = 10;
                          ^
MyInterface.java:3: error: modifier private not allowed here
   private abstract void demo();
^
2 errors

介面的受保護欄位

通常,受保護的欄位可以在同一個類或繼承它的類中訪問。但是,我們不會繼承介面,而是會實現它。

因此,不能將介面的欄位宣告為受保護的。如果嘗試這樣做,則會生成一個編譯時錯誤,提示“此處不允許使用修飾符 protected”。

示例

在下面的 Java 示例中,我們嘗試將介面的欄位和方法宣告為受保護的。

public interface MyInterface{
   protected static final int num = 10;
   protected abstract void demo();
}

輸出

MyInterface.java:2: error: modifier protected not allowed here
   protected static final int num = 10;
^
MyInterface.java:3: error: modifier protected not allowed here
   protected abstract void demo();

更新於: 2020年6月29日

3K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告