Java方法重写注意点
方法重写(Overriding)
注意点:
- 子类重写父类的方法必须参数列表相同,如果不相同就不是重写,而是重载
- 父类的返回类型必须和被子类重写的方法放回类型相同,否则还是重载
- 关于父类方法的修饰符,Java中规定被子类重写的方法不能拥有比父类更严格的访问权限,即父类中的方法为私有的(private),该方法只能本类中调用。如果在父类中方法的访问权限为public,子类中重写的方法访问权限为private的话,改程序会报错。
- 由于父类的访问权限修饰符的限制一定要大于被子类重写方法的权限修饰符,而private修饰符的权限是最小的,如果在父类中定义的方法的修饰符是private,那么子类按照重写的规范写了,这不能算重写,只能说是重新定义了这个方法。
访问修饰符
| 访问修饰符 | 本类 | 同包 | 子类 | 其他 |
|---|---|---|---|---|
| private | √ | |||
| 默认 | √ | √ | ||
| protected | √ | √ | √ | |
| public | √ | √ | √ | √ |
总结
方法重写:
1. 有继承关系的子类中
2. 方法名相同,参数列表相同(参数顺序,个数,类型),方法返回值相同
3. 访问修饰符,访问范围需要大于等于父类中的访问范围
4. 与方法的参数名无关
| 区别点 | 重载方法 | 重写方法 |
|---|---|---|
| 参数列表 | 必须修改 | 一定不能修改 |
| 返回类型 | 可以修改 | 一定不能修改 |
| 异常 | 可以修改 | 可以减少或删除,一定不能抛出新的或者更广的异常 |
| 访问 | 可以修改 | 一定不能做更严格的限制(可以降低限制) |
努力做一个技术流

浙公网安备 33010602011771号