Java中的抽象方法宣告可以包含throws子句嗎?
沒有方法體的方法稱為抽象方法。它只包含方法簽名和一個分號,以及在其之前的一個abstract關鍵字。
public abstract myMethod();
是的,你可以從抽象類中丟擲異常。
示例
在下面的Java程式中,我們有兩個類:一個名為MyClass的抽象類,它有一個抽象方法(display()),另一個類繼承了該抽象類。
這裡,display() 抽象方法丟擲一個IOException。
示例
import java.io.IOException; abstract class MyClass { public abstract void display() throws IOException; } public class AbstractClassExample extends MyClass{ public void display() throws IOException { System.out.println("This is the subclass implementation of the display method"); } public static void main(String args[]) { try { new AbstractClassExample().display(); } catch (IOException e) { e.printStackTrace(); } } }
輸出
This is the subclass implementation of the display method
在從子類覆蓋抽象方法時,你需要遵循以下規則:
如果超類中的抽象方法丟擲某些異常,實現的方法可以丟擲相同的異常。
如果超類中的抽象方法丟擲某些異常,實現的方法可以選擇不丟擲任何異常。
如果超類中的抽象方法丟擲某些異常,實現的方法可以丟擲其子型別。
如果超類中的抽象方法丟擲某些異常,實現的方法不應該丟擲其超型別。
廣告