子类在覆盖父类方法时,父类的方法如果抛出了异常,那么子类的方法只能抛出父类的异常或者该异常的
子类。
如果父类抛出多个异常,那么子类只能抛出父类异常的子集。
简单说:子类覆盖父类只能抛出父类的异常或者子类的子集

package example;
class OneException extends Exception{}
class TwoException extends Exception{}
class a{
public a() throws OneException{ }
public void event() throws TwoException{}
} public class Test extends a{ public Test() throws TwoException, OneException {
super();
}
//public void event()throws OneException {} //编译失败
//public void event()throws OneException,TwoException {}//编译失败
public void event()throws TwoException {}
}

还可以看出以上说法不适用与构造器方法,异常限制对构造器不起作用,子类构造器可以抛出任何异常,而不必理会基类构造器所抛出的异常,然而

基类构造器必须以这样那样的1方式的被调用,派生类构造器的异常说明必须包含基类构造器的异常说明。

接口对异常限制

package example;
class OneException extends Exception{}
class TwoException extends Exception{}
class ThreeException extends Exception{}
class a{
public a() throws OneException{ }
public void event() throws TwoException{}
}
interface B{
public void event()throws ThreeException ;
public void show() throws ThreeException;
} public class Test extends a implements B{ public Test() throws TwoException, OneException {
super();
} //public void event()throws ThreeException {} //编译失败
//public void event()throws TwoException,ThreeException {} //编译失败
//public void event()throws TwoException {}//编译失败
public void event(){
}
public void show() throws ThreeException {
} }

子类方法抛出的异常可以是基类方法异常的子类

package example;
class OneException extends Exception{}
class TwoException extends Exception{}
class ThreeException extends TwoException{}
class a{
public a() throws OneException{ }
public void event() throws TwoException{}
} public class Test extends a { public Test() throws TwoException, OneException {
super();
} public void event() throws ThreeException{
} }

最新文章

  1. 【LeetCode】120 - Triangle
  2. Lotus Notes中编程发送邮件(二)
  3. POI2001 Gold mine(二叉排序树 黑书经典)
  4. ACM/ICPC ZOJ1009-Enigma 解题代码
  5. AutoBackupForApps
  6. mongo db 使用方法
  7. Java基础之数据类型、内存、修饰符、代码块
  8. MR汇聚工具步骤
  9. iPhone照片格式heic图片怎么打开
  10. 在文件保存中 os.getcwd() os.listdir() os.makedirs() os.mkdir() xx.join() ... 等函数 的使用介绍
  11. SpringBoot之加载自定义配置文件
  12. Win7 vs2017 WDK 1803 1809 驱动开发 出错 KMDF
  13. ionic3 在ios9.0 系统下 会出现ReferenceError:Can't find variable:Intl 错误提示
  14. 分析hello1项目里面的web.xml
  15. SQL SERVER 2016研究五
  16. xlua 实现协程替换Unity中的协程
  17. Maven更新后本地仓库jar后缀带有 lastUpdated
  18. 吴裕雄 12-MySQL WHERE 子句
  19. resin-pro-4.0.53报错java.lang.Error: java.lang.ClassNotFoundException: com.caucho.loader.SystemClassLoader
  20. jQuery核心函数的四种不同用法

热门文章

  1. IPMI远程管理一点记录
  2. 洛谷——P3374 【模板】树状数组 1
  3. vim 脚本之快速打印log
  4. Id选择器和Class选择器
  5. Android开发之蓝牙(Bluetooth)操作(二)--修改本机蓝牙设备的可见性,并扫描周围可用的蓝牙设备
  6. Android Design Support Library(一)用TabLayout实现类似网易选项卡动态滑动效果
  7. hibernate generator id
  8. JAVA文件读取FileReader
  9. 翻译《虚幻引擎4艺术大师 - 蓝图 III 》 中文版
  10. hdu 5312 Sequence(数学推导——三角形数)