在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

更新於: 2020年6月29日

10K+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.