黑马程序员技术交流社区

标题: 请问,为什么子类覆盖父类的方法,必须确保子类抛出的异常要小于等于父类的异常? [打印本页]

作者: 刘海陆    时间: 2013-6-1 10:37
标题: 请问,为什么子类覆盖父类的方法,必须确保子类抛出的异常要小于等于父类的异常?
请问,为什么子类覆盖父类的方法,必须确保子类抛出的异常要小于等于父类的异常?


作者: littlefoxtail    时间: 2013-6-1 12:24
  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异常
作者: 刘海陆    时间: 2013-6-1 16:09
顶顶顶,谢谢了,哈哈哈
作者: 殇_心。    时间: 2013-6-1 18:01
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2