方法重写(Override)
父类的功能的实现无法满足子类的需求,需要方法重写
1.方法重写的特点
- 发生在有父子关系的类中
- 方法名相同
- 参数列表相同(数据类型 个数 顺序)
- 返回值类型可以相同,也可以是其子类
- 访问权限修饰符宽严程度不能严于父
- 重写是多态的必要条件
- 抛出的异常不能比父类的异常更大
- 私有(private)修饰的方法不能被继承,所以无法重写
- Java提供一个检查重写规则的注解 @Override
2.方法重写 & 方法重载的区别
方法重写(Override) | 方法重载(Overload) | |
---|---|---|
方法名 | 相同 | 相同 |
参数列表 | 完全相同 | 不相同 |
访问权限修饰符 | 不能严于父 | 无关 |
返回值类型 | 可以相同,可以是子类 | 无关 |
多态 | 多态必要条件 | 多态的一种表现 |
类的关系 | 发生在父子关系类中 | 同一个类 |