首页 > 代码库 > java中异常注意问题(发生在多态是的异常问题)
java中异常注意问题(发生在多态是的异常问题)
/*异常的注意事项:1,子类在覆盖父类方法时,父类的方法如果抛出了异常,那么子类的方法只能抛出父类的异常或者该异常的子类。2,如果父类抛出多个异常,那么子类只能抛出父类异常的子集。简单说:子类覆盖父类,只能抛出父类的异常或者子类或者子集。注意:如果父类的方法没有抛出异常,那么子类覆盖时绝对不能抛。子类不能抛出比父类多的异常。就只能try。。。catch*/class A extends Exception{ A(String msg){ super(msg); }}class B extends A{ B(String msg){ super(msg); }}class C extends Exception{ C(String msg){ super(msg); }}/*Exception ---A ---B ---C*/class Parent{ void show() throws A{ throw new A("抛出A异常!"); }}class Child extends Parent{ void show() throws B{ throw new B("抛出B异常!"); }}public class PC{ public static void main(String[] args){ new PC().methods(new Parent()); } static void methods(Parent p){//如果参数是Parent 的子类,也就是多态时,子类中抛出了父类没有的异常类型, //下面的代码那就不能被处理了! try{ p.show(); }catch(A e){ System.out.println("处理完异常!"); } }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。