主要是为了满足多态调用。
子类和父类的关系是is-a。
子类是一个父类,凡是使用父类的地方,也可以用子类代替。如果子类比父类多抛出异常,就破坏了这一原则。

public class Parent {public void a() throws AException {}
}
public class Child extends Parent {public void a() throws AException, BException {}
}public class Test {public void main(String[] args) {Parent p = new Child(); // 多态try {p.a();//这里在调用者看不到BException,当然不会catchBException!这样一旦Child抛出BException,将无法处理。} catch(AException e) {doSomething();}}
}

通俗的说:(来自论坛Mybeautiful的回复)
1。我要你帮忙买瓶酒,你说如果买不到的话,打个电话告诉我。所以我做好了接电话的准备
2。然而你让你儿子帮我买酒,没有买到,发了个QQ给我。我并没有收到通知,因为我不知道QQ为何物。

原文链接:https://blog.csdn.net/lidachao01/article/details/53884193

子类重写方法不能抛出新的异常相关推荐

  1. java 重写方法 访问权限_为何Java中子类重写方法的访问权限不能低于父类中权限(内含里氏替换原则)...

    为何Java中子类重写方法的访问权限不能低于父类中权限 因为 向上转型及Java程序设计维护的原因 例: 假设一个父类A 拥有的方法public void setXXX(){}可以被其他任意对象调用这 ...

  2. Objective-c 子类重写方法调用[super method]小实验

    最近温习<learn objective-c on the mac> 第4章关于重写的调用了[super setFillColor:c]很不理解其作用,可能是因为翻译逻辑不清的原因吧,特地 ...

  3. java中在方法体内抛出异常_Java异常处理中___用于方法体内,抛出一个异常对象。...

    Java异常处理中___用于方法体内,抛出一个异常对象. 答: throw; 智慧职教: 运输高致病性动物病原微生物菌(毒)种或者样本的,与内包装要求错误的是 答:E.主容器表面标注"高致病 ...

  4. 为何Java中子类重写方法的访问权限不能低于父类中权限

    参考:http://zhidao.baidu.com/link?url=E-c1LVmYCi3I-X1u5imdsDsdoyfeY2dJau6tU1bWnf4QAS4uthnM_8ffm6K177GE ...

  5. 子类不能抛出新的异常

    主要是为了满足多态调用. 子类和父类的关系是is-a. 子类是一个父类,凡是使用父类的地方,也可以用子类代替.如果子类比父类多抛出异常,就破坏了这一原则. public class Parent {p ...

  6. 子类重写方法aop切不到_Spring-aop 全面解析(从应用到原理)

    一.AOP AOP 产生的背景 "存在即合理",任何一种理论或技术的产生,必然有它的原因.了解它产生的背景.为了解决的问题有助于我们更好地把握AOP的概念. 软件开发一直在寻求一种 ...

  7. 子类重写方法aop切不到_SpringBoot源码之旅——AOP

    前提 本文代码基于SpringBoot的2.1.1.RELEASE版本,基于@AspectJ注解的AOP. 理解AOP,需要先搞懂Spring IoC容器,bin17:SpringBoot源码之旅-- ...

  8. java抛异常 代替返回_请问业务层方法是抛出一个异常好还是返回一个结果更好...

    @Override public Response checkUserToken(long uid, String accessToken, String deviceToken){ Response ...

  9. java 子类重写父类的方法应注意的问题

    若想实现一个合格重写方法,而不是重载,那么必须同时满足下面的要求! A.重写规则之一:     重写方法不能比被重写方法限制有更严格的访问级别. (但是可以更广泛,比如父类方法是包访问权限,子类的重写 ...

最新文章

  1. 【转】unity3d 在UGUI中制作自适应调整大小的滚动布局控件
  2. 【北京-知春路】这10家互联网公司值得你加入
  3. 连接到localhost后提示要求用户名和密码
  4. CentOS 7 网络连接优先由与无线问题解决
  5. python发邮件11002_【python发送zabbix报警邮件,SSL版本】mailman.py
  6. c语言让数组地址对齐,C语言实现比特位数组在目标空间左右居中对齐三种方式...
  7. Angular 2与TypeScript概览
  8. 随机投点法计算定积分java_11 随机模拟积分 | 统计计算
  9. IDEA工作笔记-对.idea及.iml文件的理解
  10. nodejs的事件处理机制
  11. 区块链软件公司:智媒链在数据分析和开发应用场景
  12. iOS-PingFangSC字体
  13. 在windows下安装 Ruby on rails 的血泪史
  14. 深度学习语音降噪方法对比_一种语音降噪方法与流程
  15. CentOS8.3安装时安装源设置基础软件仓库时出错
  16. pytorch中dim的含义及相关做法
  17. ROS-ubuntu-系统安装
  18. 关于驱动程序与BSP的区别
  19. 小码哥C++_汇编指令
  20. mysql 5.1 变量专题

热门文章

  1. 解决:ADODB.Stream 错误 '800a0bbc' 写入文件失败
  2. python enumerate_Python enumerate() 函数
  3. mybatis分页多表查询
  4. 加解密,加签、验签也就这肥事
  5. 动画讲解直流无刷电机的原理
  6. html 原始数据类型,JS原始数据类型-String
  7. 小白怎么做一个轮播图?(思路+代码)
  8. LoRa学习:SX127x芯片数字IO引脚映射
  9. 【U8+】用友U8成本管理模块下,定额分配标准中无法取到新增存货的数据。
  10. Python量化编程如何判断均线数据是金叉还是死叉?-股市数据均线策略编程分析