java方法覆盖
讲述方法覆盖前先回顾方法重载(Overload)的概念。要注意区分方法重载和方法覆盖(Override)。
- 方法重载
1、方法重载又称为overload;
2、什么时候使用方法重载?方法完成的功能相似,仅参数列表有区别。
3、什么条件满足之后构成方法重载?\同一个类当中\方法名相同\实参列表不相同(类型、顺序、个数)的时候。
4、方法重载和什么无关?* 和方法的返回值类型无关;* 和方法的修饰符列表无关;
- 方法覆盖/方法重写
1、方法覆盖(override)又称为方法重写(overwrite);2、什么时候使用方法重写?
+当父类中的方法已经无法满足当前子类的业务需求;
+子类有必要将父类中继承过来的方法进行重新编辑;
+重新编写的过程称为方法重写/方法覆盖;
3、什么条件满足之后会发生方法重写?【代码满足什么条件构成方法覆盖呢?】
* 方法重写发生在具有继承关系的父子类之间。
* 方法重写的时候:返回值类型相同,方法名相同,形参列表相同,
* 方法重写的时候:访问权限不能更低,可以更高。private不行,protected也不行;继承权限只能往下(从高到低)走。
* 方法重写的时候:抛出异常不能更多,只能更少。
4、建议方法重写的时候尽量复制粘贴,不要编写,容易出错,导致没有正确产生覆盖。可以自动生成。
5、注意点:
* 私有方法不能继承,因此不能覆盖。