方法重写:
package com.lbj.javase10;
public class Bird extends Animal {
public void move(){
System.out.println("鸟会飞");
}
}
package com.lbj.javase10;
public class Cat extends Animal{
public void move(){
System.out.println("猫会爬");
}
}
package com.lbj.javase10;
public class Animal {
public void move(){
System.out.println("动物都可以移动");
}
}
package com.lbj.javase10;
/**
*
* 回顾java语言中的方法重载:
* 1.方法重载又被称为Overload
*
* 2.方法重载什么时候使用:
* 在同一个类当中,方法完成的功能是相似的,建议方法名相同,这样方便程序员的编程
* 就像在调用一个方法一样。代码美观
*
* 3.什么条件满足后构成方法重载:
* *在同一个类中
* 方法名相同
* 参数列表不同:类型、顺序、个数
*
* 4.方法重载和什么无关:
* *和方法的返回值类型无关
* *和方法的修饰符列表无关
*
*
* *------------------------------------------
*
* 关于java语言中方法的覆盖:
*
* 1.方法覆盖又被称为方法重写:override【官方的】/overWrite
*
* 2.什么时候使用方法重写?
* 当父类中的方法已经无法满足当前子类的业务需求
* 子类有必要将父类中继承过来的方法进行重新编写
* 这个编写的过程称为方法重写,也叫做【方法覆盖】
*
* 3.什么条件满足之后方法会发生重写呢?【代码满足什么条件后,就构成方法的覆盖呢?】
* *方法重写发生在具有继承关系的父子关系之间【这是重写发生的前提条件】
* *方法重写的时候:返回值类型相同,方法名相同,形参列表相同
* *方法重写的时候:访问权限不能更低,可以更高
* *方法重写的时候:抛出异常不能更多可以更少【了解异常抛出后会解释】
*
* 4.建议方法重写的时候尽量复制粘贴,不要编写,容易出错,导致没有产生方法覆盖
*
* 5.注意:
* 私有方法不能继承,所以不能覆盖
* 构造方法不能继承,所以不能覆盖
* 静态方法不存在覆盖【了解多态后可以解释】
* 覆盖只针对方法,不谈属性
*
*
* @author 14811
*
*/
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();
}
}