方法的覆盖实战代码
/**
*回顾方法的重载:
*1.方法重载又称为overload
*2.方法重载什么时候使用?
* 当在同一个类中,方法完成的功能是相似的,建议方法名相同,这样方便程序员的编程,
* 就像在调用一个方法似的,代码美观。
*3.神魔条件满足之后构成方法重载?
* *在同一个类当中
* *方法名相同
* *参数列表不同:类型、顺序、个数
*4.方法重载和什么无关?
* *和方法的返回值类型无关
* *和方法的修饰符列表无关
*
* 关于方法的覆盖:
* 1.方法覆盖又称为方法重写,override【官方】/overwrite
* 2.什么时候使用方法重写?
* 当父类的方法已经无法满足子类的业务需求,
* 子类有必要将父类中继承的方法进行重新编写,
* 这个重新进行编写的过程叫做方法重写/方法覆盖。
* 3.什么方法满足之后方法会发生重写呢?【代码满足什么条件之后,就构成方法的覆盖呢?】
* *方法重写发生在具有继承关系的父子之间
* *返回值类型相同,方法名相同,形参列表相同。
* *访问权限不能更低,可以更高。
* *抛出异常不能更多,可以更少。【学了异常之后,就明白了】
* 4.建议方法重写的时候尽量复制粘贴。不要自己写,容易出错。
* 5.注意:
* 私有方法不能继承,所以不能覆盖。
* 构造方法不能继承,所以不能覆盖。
* 静态方法不存在覆盖。【学了多态后才能明白。】
* 覆盖只针对方法,不谈属性。
**/
package day01.test008;
public class OverrideTest01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建动物对象
Animal a =new Animal();
a.move();
//创建猫科类对象
Cat c = new Cat();
c.move();
//创建飞禽类对象
Bird b = new Bird();
b.move();
}
}
package day01.test008;
//动物类
public class Animal {
//动物都是可以移动的
public void move() {
System.out.println("动物在移动");
}
}
package day01.test008;
//猫科类
public class Cat extends Animal{
public void move() {
System.out.println("猫在走猫步");
}
}
package day01.test008;
//飞禽类
public class Bird extends Animal{
public void move() {
System.out.println("鸟在飞翔");
}
}