当父类中的方法已经无法满足当前子类的业务需求,子类有必要将父类中继承过来的方法进行重新编写,这个重新编写的过程称为方法重写 / 方法覆盖
发生方法覆盖的条件:
发生在具有继承关系的父子类之间
返回值类型相同, 方法名相同,形参列表相同
访问权限不能更低,可以更高
抛出异常不能更多,可以更少
1
2
3
4
5
6
7
8class A {
public void m1() {}
}
class B extends A {
// 子类永远无法抛出比父类更多的异常
public void m1() throws Exception {}
}
注意:
- 建议方法重写的时候,尽量复制粘贴,不要编写,容易出错,导致没有产生覆盖
- 私有方法与构造方法不能继承,所以不能覆盖
- 静态方法不存在覆盖
- 覆盖只针对方法,不针对属性
eclipse 快捷键
右键文件 –> Source –> Override/Implement Methods