Java 中的抽象方法声明是否可以包含 throws 子句?
java 8object oriented programmingprogramming
没有主体的方法称为抽象方法。它仅包含带有分号的方法签名,并在其前面有一个 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("这是显示方法的子类实现"); } public static void main(String args[]) { try { new AbstractClassExample().display(); } catch (IOException e) { e.printStackTrace(); } } }
输出
这是显示方法的子类实现
从子类重写抽象方法时,需要遵循以下规则 −
如果超类中的抽象方法抛出某些异常。实现的方法可以抛出相同的异常。
如果超类中的抽象方法抛出某些异常。实现的方法可以选择不抛出任何异常。
如果超类中的抽象方法抛出某些异常。实现的方法可以抛出其子类型
如果超类中的抽象方法抛出某些异常。实现的方法不应该抛出其超类型。