子类重写方法不能抛出新的异常
主要是为了满足多态调用。
子类和父类的关系是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
子类重写方法不能抛出新的异常相关推荐
- java 重写方法 访问权限_为何Java中子类重写方法的访问权限不能低于父类中权限(内含里氏替换原则)...
为何Java中子类重写方法的访问权限不能低于父类中权限 因为 向上转型及Java程序设计维护的原因 例: 假设一个父类A 拥有的方法public void setXXX(){}可以被其他任意对象调用这 ...
- Objective-c 子类重写方法调用[super method]小实验
最近温习<learn objective-c on the mac> 第4章关于重写的调用了[super setFillColor:c]很不理解其作用,可能是因为翻译逻辑不清的原因吧,特地 ...
- java中在方法体内抛出异常_Java异常处理中___用于方法体内,抛出一个异常对象。...
Java异常处理中___用于方法体内,抛出一个异常对象. 答: throw; 智慧职教: 运输高致病性动物病原微生物菌(毒)种或者样本的,与内包装要求错误的是 答:E.主容器表面标注"高致病 ...
- 为何Java中子类重写方法的访问权限不能低于父类中权限
参考:http://zhidao.baidu.com/link?url=E-c1LVmYCi3I-X1u5imdsDsdoyfeY2dJau6tU1bWnf4QAS4uthnM_8ffm6K177GE ...
- 子类不能抛出新的异常
主要是为了满足多态调用. 子类和父类的关系是is-a. 子类是一个父类,凡是使用父类的地方,也可以用子类代替.如果子类比父类多抛出异常,就破坏了这一原则. public class Parent {p ...
- 子类重写方法aop切不到_Spring-aop 全面解析(从应用到原理)
一.AOP AOP 产生的背景 "存在即合理",任何一种理论或技术的产生,必然有它的原因.了解它产生的背景.为了解决的问题有助于我们更好地把握AOP的概念. 软件开发一直在寻求一种 ...
- 子类重写方法aop切不到_SpringBoot源码之旅——AOP
前提 本文代码基于SpringBoot的2.1.1.RELEASE版本,基于@AspectJ注解的AOP. 理解AOP,需要先搞懂Spring IoC容器,bin17:SpringBoot源码之旅-- ...
- java抛异常 代替返回_请问业务层方法是抛出一个异常好还是返回一个结果更好...
@Override public Response checkUserToken(long uid, String accessToken, String deviceToken){ Response ...
- java 子类重写父类的方法应注意的问题
若想实现一个合格重写方法,而不是重载,那么必须同时满足下面的要求! A.重写规则之一: 重写方法不能比被重写方法限制有更严格的访问级别. (但是可以更广泛,比如父类方法是包访问权限,子类的重写 ...
最新文章
- 【转】unity3d 在UGUI中制作自适应调整大小的滚动布局控件
- 【北京-知春路】这10家互联网公司值得你加入
- 连接到localhost后提示要求用户名和密码
- CentOS 7 网络连接优先由与无线问题解决
- python发邮件11002_【python发送zabbix报警邮件,SSL版本】mailman.py
- c语言让数组地址对齐,C语言实现比特位数组在目标空间左右居中对齐三种方式...
- Angular 2与TypeScript概览
- 随机投点法计算定积分java_11 随机模拟积分 | 统计计算
- IDEA工作笔记-对.idea及.iml文件的理解
- nodejs的事件处理机制
- 区块链软件公司:智媒链在数据分析和开发应用场景
- iOS-PingFangSC字体
- 在windows下安装 Ruby on rails 的血泪史
- 深度学习语音降噪方法对比_一种语音降噪方法与流程
- CentOS8.3安装时安装源设置基础软件仓库时出错
- pytorch中dim的含义及相关做法
- ROS-ubuntu-系统安装
- 关于驱动程序与BSP的区别
- 小码哥C++_汇编指令
- mysql 5.1 变量专题
热门文章
- 解决:ADODB.Stream 错误 '800a0bbc' 写入文件失败
- python enumerate_Python enumerate() 函数
- mybatis分页多表查询
- 加解密,加签、验签也就这肥事
- 动画讲解直流无刷电机的原理
- html 原始数据类型,JS原始数据类型-String
- 小白怎么做一个轮播图?(思路+代码)
- LoRa学习:SX127x芯片数字IO引脚映射
- 【U8+】用友U8成本管理模块下,定额分配标准中无法取到新增存货的数据。
- Python量化编程如何判断均线数据是金叉还是死叉?-股市数据均线策略编程分析