例外3子親クラス例外

サブペアレント例外

  • 親クラスが複数の例外をスローする場合、子クラスが親クラスメソッドをオーバーライドすると、親クラスまたは親クラス例外のサブクラスと同じ例外がスローされるか、例外はスローされません。
  • 親クラスのメソッドは例外をスローせず、子クラスは親クラスのメソッドをオーバーライドするときに例外をスローできません。現時点では、子クラスは例外を生成し、キャッチおよび処理のみが可能であり、スローを宣言することはできません。

コード例

public class Demo09FuZI {
 public void show01()throws NullPointerException,ClassCastException{};
public void show02()throws IndexOutOfBoundsException{};
public void show03()throws IndexOutOfBoundsException{};
public void show04(){};

}
class Zi extends Demo09FuZI{
//1.抛出相同的异常
@Override
public void show01()throws NullPointerException,ClassCastException{};
//2.抛出父类异常的子类

@Override
public void show02() throws ArrayIndexOutOfBoundsException {

}
//3.子类重写方法时,不抛出异常

@Override
public void show03() {

}
//父类方法没有抛出异常,子类重写父类该方法时也不可以抛出异常,此时子类产生该异常,只能捕获处理,不能声明抛出
@Override
public void show04() {
    try {
        throw new Exception("编译器异常");
    } catch (Exception e) {
        e.printStackTrace();
    }
}
}

おすすめ

転載: blog.csdn.net/tangshuai96/article/details/102543428