一、Java中的方法覆盖
1.方法覆盖又称为方法重写,英语单词:override/overwrite
2.使用:
当父类中的方法已经无法满足当前子类的业务需求,子类有必要将父类中继承过来的方法进行重新编写,这个重新编写的过程称为方法的重写/覆盖
3.满足的条件:
- 方法的重写发生在具有继承关系的父子类之间
- 方法名相同返回值类型相同,返回值列表相同(尽量复制粘贴)
- 访问权限不能更低,可以更高
- 抛出异常可以更多,可以更少。
4.注意:
- 私有方法不能继承,所以不能覆盖。
- 构造方法不能继承,所以不能覆盖。
- 静态方法不存在覆盖。
- 覆盖只针对方法,不谈属性。
public class OverrideTest {
public static void main(String[] args) {
Animal a=new Animal();
a.move();
Cat bCat=new Cat();
bCat.move();
Bird bird=new Bird();
bird.move();
}
}
public class Animal {
public void move() {
System.out.println("动物在移动");
}
}
public class Cat extends Animal{
public void move() {
System.out.println("猫在走猫步");
}
}
public class Bird extends Animal{
public void move() {
System.out.println("鸟儿在飞翔");
}
}