在 Java 8 中,可以將介面成員宣告為私有或受保護的嗎?


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

由於所有方法都是抽象的,因此您無法例項化它。要使用它,您需要使用類實現此介面,並在其中為所有抽象方法提供主體。

介面的私有成員

如果介面的成員是私有的,則您無法為方法提供實現,也無法在實現類中訪問它的欄位。

因此,介面的成員不能是私有的。如果您嘗試將介面的成員宣告為私有,則會生成一個編譯時錯誤,提示“此處不允許使用修飾符 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();
^
2 errors


更新於: 2022年2月4日

5K+ 次瀏覽

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告