1.基本介绍
简单的说:方法覆盖(重写)就是子类有一个方法,和父类的某个方法的名称、返回类型、参数一样,那么我们就说子类的这个方法覆盖了父类的那个方法。
子类(下级)把父类(上级)已有的方法,重新写一遍实现,让它更适合子类自己。
2.方法重写必须满足什么条件?
三同一大一小(口诀):
(1)方法名相同
(2)参数列表相同(个数、类型、顺序都一样)
(3)返回值类型相同
特殊:或者子类的返回类型是父类的返回类型的子类。
(4)子类方法的权限 >= 父类权限
父 public → 子只能 public 父 protected → 子可以 protected /public
public > protected > 默认 > private
(5)子类抛出的异常不能比父类更大(了解即可)
3. 方法重写 vs 方法重载
- 重写(Override) :继承关系,子类改父类方法 → 同名同参
- 重载(Overload) :同一个类里,多个同名方法 → 同名不同参
