在Java中,我們可以宣告抽象方法為私有、受保護、公有或預設嗎?
沒有方法體的方法稱為抽象方法。它只包含方法簽名和一個分號,以及在其前面一個抽象關鍵字。
public abstract myMethod();
要使用抽象方法,您需要透過擴充套件其類來繼承它,併為其提供實現。
宣告私有抽象方法
如果一個類的某個方法是私有的,則您無法在當前類之外訪問它,甚至無法從它的子類訪問它。
但是,對於抽象方法,您無法在同一個類中使用它,您需要從子類中覆蓋它並使用它。
因此,抽象方法不能是私有的。
如果您仍然嘗試將抽象方法宣告為final,則會生成一個編譯時錯誤,提示“修飾符的非法組合 - abstract 和 private”。
示例
在以下 Java 程式中,我們嘗試宣告一個私有抽象方法。
abstract class AbstractClassExample {
private static abstract void display();
}編譯時錯誤
編譯時,上述程式會生成以下錯誤。
AbstractClassExample.java:2: error: illegal combination of modifiers: abstract and private private static abstract void display(); ^ 1 error
宣告受保護的抽象方法
是的,您可以宣告受保護的抽象方法。如果您這樣做,則可以從同一包中的類或其子類中訪問它。
(並且您必須從子類中覆蓋抽象方法並呼叫它。)
示例
在以下 Java 程式中,我們嘗試宣告一個受保護的抽象方法。
abstract class MyClass {
protected abstract void display();
}
public class AbstractClassExample extends MyClass{
public void display() {
System.out.println("This is the subclass implementation of the display method ");
}
public static void main(String args[]) {
new AbstractClassExample().display();
}
}輸出
This is the subclass implementation of the display method
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP