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