关于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();
}
}