博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
方法覆盖和异常
阅读量:3672 次
发布时间:2019-05-21

本文共 892 字,大约阅读时间需要 2 分钟。

方法覆盖要注意两点:

n 访问权限不能比父类的弱

n 抛出的异常不能比父类的多。(注意多并不是数量上的多,而是父类方法抛出的异常必须包含子类覆盖方法抛出的异常)

请看下例:

class TestMyException2 {	public static void main(String[] args) {		ABC abc = new ABD();		try {			abc.a(5);		} catch (EA e) {			e.test();		}	}}class EA extends Exception // 创建自己的编译时异常{	String s;	public EA(String s) {		this.s = s;	}	public EA() {	}	public void test() {		System.out.println(s);	}};class EA1 extends EA // 创建自己的异常的子异常{	public EA1(String s) {		super(s);	}};class EA2 extends EA // 创建自己的异常的子异常{	public EA2(String s) {		super(s);	}};class ABC {	public void a(int i) throws EA {		if (i < 0)			System.out.println("normal");		else			throw new EA("no normal");	}};class ABD extends ABC {	public void a(int i) throws EA1, EA2 // 虽然抛出的异常比父类多,但是都是父类异常的子类	{		if (i < 0)			System.out.println("dfsdafds");		else if (i == 0)			throw new EA1("参数 == 0");		else			throw new EA2("参数 > 0");	}};

运行结果为:

参数 > 0

更多

转载地址:http://yrsbn.baihongyu.com/

你可能感兴趣的文章
线程池
查看>>
servlet的其他作用,git的使用方法
查看>>
Oracle数据库sql*plus常用命令
查看>>
Oracle中表的简单查询
查看>>
Linux-进程管理
查看>>
Linux-ssh服务及服务管理、文件传输
查看>>
Linux-网络配置
查看>>
开发中浏览器兼容的问题总结
查看>>
7种启动Spring Boot项目的方式,一次性打包说给你听
查看>>
Js动态生成Div、带属性。append()和appendChild()
查看>>
整合trtc遇到的坑:<ERROR> navigator.mediaDevices is undefined
查看>>
前端实现视频在线预览插件之video.js上手
查看>>
【Unity】删除所有子物体保留父物体的2种方式
查看>>
基本组件操作
查看>>
Time模块
查看>>
InputModule
查看>>
Unity3D Waypoint (路点)
查看>>
同步延时问题解决方案
查看>>
面试题总结
查看>>
简易小地图制作重点
查看>>