关于java语言当中的方法的覆盖
1.方法覆盖又被称为方法重写,英语单词:override【官方】/override
2.什么时候使用方法重写?
当父类中的方法已经无法满足当前子类的业务需求,子类有必要将父类中继承过来的方法进行重新编写,这个重新编写的过程称为方法重写/方法覆盖
3.什么条件满足之后方法会发生重写呢?【代码满足之后,就构成方法的覆盖?】
方法重写发生在具有继承关系的父与子之间
方法重写的时候:返回值类型相同,方法名相同,形式参数相同
方法重写的时候:访问权限不能太低,可以更高
方法重写的时候:抛出异常不能更多,可以更少。
4.建议方法重写的时候尽量复制粘贴,不要编写,容易出错,导致没有产生覆盖
5.注意:
私有方法不能继承,所以不能覆盖
构造方法不能继承,所以不能覆盖
静态方法不存在覆盖。
覆盖只针对方法,不谈属性。
关于java语言当中的方法重载
1.方法重载又称为Overload
2.方法重载在什么时候使用?
当在同一个类中,方法完成的功能是相似的,建议方法名相同,这样方便程序员的编程,就像在调用一个方法似的。代码美观。
3.什么条件满足之后构成方法重载?
在同一个类当中,方法名相同,参数列表不同:类型,顺序,个数
4.方法重载和什么无关?
和方法的返回值类型无关
和方法的修饰符列表无关
示例代码:
class Animal { public void move(){ System.out.println("动物在移动!"); } } class Cat extends Animal { public void move() { System.out.println("猫在走猫步!"); } } class Bird extends Animal { public void move() { System.out.println("鸟儿在飞翔!"); } } class YingWu extends Bird { //这里的move方法覆盖的是Bird当中的move方法 public void move() { System.out.println("鹦鹉飞不起来!"); } } public class OverrideTest01 { public static void main(String[] args) { //创建动物对象 Animal a = new Animal(); a.move(); //创建猫类对象 Cat c = new Cat(); c.move(); //创建鸟类对象 Bird b = new Bird(); b.move(); //创建鹦鹉类对象 YingWu y = new YingWu(); y.move(); } }