方法重写(覆盖)(override)(在子类和父类)
简单的说:方法重写(覆盖)就是子类有一个方法,和父类的某个方法的名称、返回类型、参数一样,那么我们就说子类的这个方法重写了父类的那个方法
注意事项和使用细节
-
子类的方法的参数,方法名称要和父类方法的参数,方法名称完全一样
-
子类方法的返回类型和父类方法返回类型一样,或者是父类返回类型的子类
比如 父类的返回类型是Object,子类方法返回类型是String
-
子类方法不能缩小父类方法的访问权限,但是能扩大
方法重写和方法重载的区别
名称 | 发生范围 | 方法名 | 参数列表 | 返回类型 | 修饰符 |
---|---|---|---|---|---|
重载(overload) | 发生在同一个类中 | 相同 | 个数,类型,顺序必须有一个不同 | 无要求 | 无要求 |
重写(override) | 发生在子类父类继承关系中 | 相同 | 相同 | 子类重写的方法返回的类型和父类返回的类型是一致,或者是其子类 | 子类的的修饰符权限要大于或等于父类的修饰符权限 |