/*
* 重写要遵循"两同两小一大"原则:
* 1)两同:
* 1.1)方法名相同
* 1.2)参数列表相同
* 2)两小:
* 2.1)子类方法的返回值类型小于或等于父类的
* 2.1.1)void时,必须相同
* 2.1.2)基本类型时,必须相同
* 2.1.3)引用类型时,小于或等于
* 2.2)子类方法抛出的异常小于或等于父类的
* 3)一大:
* 3.1)子类方法的访问控制权限大于或等于父类方法的访问控制权限
*/
一、两同:
方法名相同,参数列表相同

二、两小1:
子类方法的返回值类型需要小于或等于父类的方法的返回值类型。
具体要求如下:
* 2.1.1)void时,必须相同
* 2.1.2)基本类型时,必须相同
* 2.1.3)引用类型时,小于或等于
三、两小2:
子类重写父类的方法时: 子类方法抛出的异常小于或等于父类的异常(需要是父类方法的子类异常)
上边的语法要求的具体内容如下:
- 允许和父类方法抛出同样的异常
- 允许不再抛出任何异常.
- 允许仅抛出部分异常
- 允许抛出超类方法声明抛出异常的子类型异常
- 不允许抛出额外异常(超类方法没有声明的且不存在继承关系的)
- 不允许抛出超类方法抛出异常的超类型异常
测试代码如下:
2024-05-27 by zhaoyq
浙公网安备 33010602011771号