是的,接口的抽象方法可能会引发异常。
在下面的示例中,接口(MyInterface)包含一个名为display的抽象方法,该方法抛出IOException。
import java.io.IOException;
abstract interface MyInterface {
public abstract void display()throws IOException ;
}实现这种方法时,您需要遵循以下给出的规则-
接口中的抽象方法是否抛出某些异常。实现的方法可以引发如下所示的异常-
import java.io.IOException;
abstract interface MyInterface {
public abstract void display()throws IOException ;
}
public class InterfaceExample implements MyInterface{
public void display()throws IOException {
System.out.println("这是显示方法的子类实现");
}
public static void main (String args[]){
try {
new InterfaceExample().display();
}
catch (Exception e) {
e.printStackTrace();
}
}
}输出结果
这是显示方法的子类实现
接口中的抽象方法是否抛出某些异常。实现的方法可以选择不引发任何异常,如下所示:
import java.io.IOException;
abstract interface MyInterface {
public abstract void display()throws IOException ;
}
public class InterfaceExample implements MyInterface{
public void display() {
System.out.println("这是显示方法的子类实现");
}
public static void main (String args[]){
try {
new InterfaceExample().display();
}
catch (Exception e) {
e.printStackTrace();
}
}
}输出结果
这是显示方法的子类实现
接口中的抽象方法是否抛出某些异常。实现的方法可以抛出其子类型-
import java.io.IOException;
abstract interface MyInterface {
public abstract void display()throws Exception ;
}
public class InterfaceExample implements MyInterface{
public void display()throws IOException {
System.out.println("这是显示方法的子类实现");
}
public static void main (String args[]){
try {
new InterfaceExample().display();
}
catch (Exception e) {
e.printStackTrace();
}
}
}输出结果
这是显示方法的子类实现
接口中的抽象方法是否抛出某些异常。实现的方法不应抛出其超级类型
import java.io.IOException;
abstract interface MyInterface {
public abstract void display()throws IOException ;
}
public class InterfaceExample implements MyInterface{
public void display()throws Exception {
System.out.println("这是显示方法的子类实现");
}
public static void main (String args[]){
try {
new InterfaceExample().display();
}
catch (Exception e) {
e.printStackTrace();
}
}
}输出结果
InterfaceExample.java:8: error: display() in InterfaceExample cannot implement display() in MyInterface
public void display()throws Exception {
^
overridden method does not throw Exception
1 error