package com.chunzhi.Test03Exception;
/*
子父类的异常:
如果父类抛出了多个异常,子类重写父类方法时,抛出和父类相同的异常或者是父类异常的子类或者不抛出异常。
父类方法没有抛出异常,子类重写父类该方法时也不可抛出异常。此时子类产生该异常,只能捕获处理,不能声明抛出
注意:
父类异常是什么样子,子类异常就什么样
(上面文字看不懂的话,直接看下面案例,结合案例与文字一同理解相对容易)
*/
public class Fu {
public void show1() throws NullPointerException,ClassCastException{}
public void show2() throws IndexOutOfBoundsException{}
public void show3() throws IndexOutOfBoundsException{}
public void show4() {}
public void show5() {}
}
class Zi extends Fu{
// 子类重写父类方法时,抛出和父类相同的异常
public void show1() throws NullPointerException,ClassCastException{}
// 子类重写父类方法时,抛出父类异常的子类
public void show2() throws ArrayIndexOutOfBoundsException{}
// 子类重写父类方法时,不抛出异常
public void show3() {}
// 父类方法没有抛出异常,子类重写父类方法也不可抛出异常
public void show4() {}
// 此时子类产生该异常,只能捕获处理,不能声明抛出
public void show5() {
try {
throw new Exception("编译期异常");
} catch (Exception e) {
e.printStackTrace();
}
}
}
原文:https://www.cnblogs.com/chunzhi716/p/13954494.html