在 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
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP