A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

请问,为什么子类覆盖父类的方法,必须确保子类抛出的异常要小于等于父类的异常?

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 神马都是浮云

查看全部评分

3 个回复

倒序浏览
  1. public class Parent {
  2.     public void a() throw AException {
  3.     }
  4. }
  5. public class Child extends Parent {
  6.     public void a() throw AException, BException {
  7.     }
  8. }

  9. public class Test {
  10.     public void main(String[] args) {
  11.         Parent p = new Child();
  12.         try {
  13.              p.a();//这里在调用者就不知道抛出BException了!这样就会导致一些问题
  14.         } catch(AException e) {
  15.              doSomething();
  16.         }
  17.     }
  18. }
复制代码
如果我用多态的方式调用,也就是用父类的引用调用子类的方法,
子类抛出更多的异常,会导致无法捕获Exception异常

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

回复 使用道具 举报
顶顶顶,谢谢了,哈哈哈
回复 使用道具 举报
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马