关于方法覆盖:
方法覆盖又被称为方法重写 英语单词是override 、overwrite
什么时候使用方法覆盖?
当父类中的方法已经无法满足当前子类的业务需求,子类有必要对父类中继承过来的方法进行重新编写,这个重新编写的过程就叫做方法覆盖
什么条件满足之后发生方法覆盖?
方法覆盖发生在具有继承关系的父子类之间 返回值类型相同 、方法名相同、形参列表相同 访问权限不可以更低,可以更高 抛出异常不能更多,可以更少
注意:
私有方法不能继承 所以没有方法覆盖 构造方法不能继承 所以没有方法覆盖 静态方法不存在覆盖 覆盖只针对于方法,不针对于属性
package com.bjpowernode.jave.Test05;
public class OverRideTest {
public static void main(String[] args) {
Animal a = new Animal();
a.move();
fish f = new fish();
f.move();
bird b = new bird();
b.move();
}
}
//动物类中有一个move方法
class Animal{
public void move() {
System.out.println("动物在运动");
}
}
// 鱼类继承动物类
class fish extends Animal{
//进行方法覆盖,因为这里我们希望看到鱼的动作,而不是动物在运动这样的概括性语句
public void move() {
System.out.println("鱼在游");
}
}
// 鸟类继承动物类
class bird extends Animal{
//方法的覆盖
public void move() {
System.out.println("鸟在飞");
}
}