黑马程序员技术交流社区

标题: 为什么如果父类不抛出异常 子类就不能抛出异常呢 [打印本页]

作者: aaa99992    时间: 2014-5-19 15:43
标题: 为什么如果父类不抛出异常 子类就不能抛出异常呢
本帖最后由 aaa99992 于 2014-5-27 17:02 编辑

为什么要这么设计呢
作者: saheru    时间: 2014-5-19 16:08
通俗的说就是:父类抛出什么异常,说明允许子类抛出什么异常,从多态上讲很容易理解,因为多态是从上往下看,即到父类的方法,对子类的方法是不可见的(需要运行时动态的获得,并调用,这就是多态的实质),那么,如果子类抛出的异常比父类范围要大,那么就不可控制了、不可欲知了,反之,如果子类抛出的异常要比父类小,那么就可控制和预知,因为就在父类的异常范围内抛出。

作者: 波涛    时间: 2014-5-19 16:34
我也想知道,只是知道确实是这么定义的。
作者: zhrnghgwsws    时间: 2014-5-19 16:51
学习学习。。
作者: 谭荣强    时间: 2014-6-10 21:59
很简单,将父类引用传入给方法A(没有抛异常),方法A使用父类应用。使用多态将子类对象传递给A,如果子类抛出异常B,因为A方法没有过处理异常B,导致程序错误




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