子类在覆盖父类方法时,父类方法如果抛出了异常 那么子类的方法只能抛出父类的异常或者该异常的子类如果父类抛出多个异常,那么子类只能抛出父类异常的子集 简单来说,子类覆盖父类的方法,只能抛出父类的异常的子集。 注意:如果父类方法没有抛出异常,那么子类覆盖时绝对不可能抛,只能try。 class A extends Exception { } class B extends A { } class C extends Exception { } /* Exception |--A |--B |--C */ class Fu{ void show throws A{ } } class Zi extends Fu{ void show() throws C{ System.out.println(""); } } class Test{ void method(Fu f){ try { f.show(); } catch(A a) { System.out.println("catch 到异常信息"); } finally{ System.out.println("异常处理完毕,finally来做善后工作") } } class ExceptionDemos{ public static void main(String[] args){ System.out.println(""); Test t= new Test(); t.method(new Zi()); } }