基本介绍:
简单地说:方法覆盖(重写)就是子类有一个方法的名称、返回类型、参数一样,那么我们就说子类的这个方法覆盖了父类的那个方法。
注意事项和使用细节:
子类的方法的形参列表,方法名称,要和父类方法的形参列表,方法名称完全一样。
子类方法的返回类型和父类方法返回类型一样,或者是父类返回类型的子类。
比如,父类方法返回类型是Object,子类方法返回类型是String。
子类方法不能缩小父类方法的访问权限。
方法重写和方法重载的比较:
名称 | 重载(overload) | 重写(override) |
---|---|---|
发生范围 | 同一个类中的 | 父子类之间的 |
方法名 | 相同 | 相同 |
形参列表 | 不同 类型,个数或者顺序至少有一个不同 | 相同 |
返回类型 | 无要求(可相同可不同) | 子类重写的方法,返回的类型和父类返回的类型一致,或者是其子类 |
修饰符 | 无要求 | 子类方法访问权限必须>=父类方法访问权限 (子类方法不能缩小父类方法的访问范围) |