回顾方法重载(overload)
什么时候使用方法重载?
当在一个类中,如果功能相似的话,可以将方法名定义成一样的,代码美观且方便编程
方法重载满足的条件:
- 同一个类中;
- 方法名相同;
- 参数列表不同(个数、顺序、类型)。
什么时候会使用方法重写(方法覆盖,override)?
子类继承父类之后,当继承过来的方法无法满足当前子类的业务需求时,子类有必要对这个方法进行重新编写(重写)
在进行方法重写时,最好将父类中的方法原封不动的复制。
当子类将从父类继承过滤的方法进行重写后,子类对象再调用该方法时一定会执行重写后的方法。
继承是为了实现多态和代码的封装
如何在代码级别上构成方法覆盖呢?
- 两个类必修要有继承关系;
- 重写之后的方法和之前的方法具有:相同的返回值类型(针对于返回值类型是基本数据类型;引用数据类型的话可以“变小”,但意义不大)、相同的方法名、相同的形式参数列表;
- 访问权限不能更低,可以更高,或者不变;
- 重写之后的方法不能比之前的方法抛出更多的异常,可以更少
注意事项:
- 方法重写只是针对方法,与属性无关;
- 私有方法无法重写;
- 构造方法不能被继承,所以构造方法也不能被重写;
- 方法重写只针对于实例方法,静态方法重写没有意义。
静态方法存在方法重写吗?
不存在,静态方法可以使用“引用.”来调用,但是和对象无关。
示例重写toString()方法
public class OverrideTest{
public static void main(Str