重写方法抛出异常的规则 [Java]

重写方法抛出异常的规则

方法重写的规则之一:

子类重写父类方法抛出的异常不能大于父类中被重写的方法抛出的异常类型

  • 如果说父类方法抛出了异常,那么子类重写方法抛出的异常类型不大于父类中被重写的方法抛出的异常类型,不大于,自然也可以没有,也就是子类重写方法可以不抛出异常(但是前提要是真的没有产生异常,如果产生了异常的话还是要抛出,或者就使用try-----catch------finally处理异常)

为什么要求子类重写方法抛出的异常要小于父类被重写方法抛出的异常?

因为在实际的编程中,如果使用到了多态时,这个时候我们编译期间看的是左边(也就是父类类型),而在运行阶段看的是右边(也就是子类重写后的方法),这个时候我们接对多态方式调用的子类重写方法使用try------ catch------finally的方式去直接用IDEA生成一个try----catch------finally来解决这个异常的话,那么由于我们在编译期间看的是左边,所以看的是父类类型,也就是会以父类方法抛出的异常类型为模板生成try----catch-----finally,但是这个时候实际这个方法调用的是子类的方法,也就是这个时候我们产生的是一个子类重写方法抛出的异常,如果这个时候子类可以产生比父类异常还大的异常,那么这个时候这个catch就解决不了这个异常了,所以我们规定了子类重写父类的方法抛出的异常类型只能是比父类抛出的异常类型要小

  • 父类被重写的方法不抛出异常时,子类重写的方法也不能抛出异常
  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值