回归Java语言当中方法的重载:
1、方法重载又称为Overload
2、方法重载何时使用?
当在同一个类当中,方法完成的功能是相似的,建议方法名相同,代码也会美观。
3、什么条件满足之后构成方法重载?
在同一个类当中
方法名相同
参数列表不同:类型、顺序、个数
4、方法重载和什么无关?
和方法的返回值类型无关
和方法的修饰符列表无关
关于Java语言当中方法的覆盖:
1、方法覆盖又称为方法重写,英文单词:Override【官方】/Overwrite
2、什么时候使用方法重写?
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();
}
}
=========================================================================================
类:
public class Animal {
//动物都是可以移动的
public void move() {
System.out.println("Animal is moving!");
}
}
public class Cat extends Animal{
}
public class Bird extends Animal{
}
此时程序显示的均为Animal is moving!
但我想实现对于具体动物输出进行具体动作,如Cat输出Cat is running!;Bird输出Bird is flying!
*当父类的方法以及无法满足当前子类的业务需求,子类有必要将父类中继承过来的方法进行重新编写,这个重新编写的过程称为方法覆盖。
3、什么条件满足之后方法会发生重写?【代码满足什么条件后才构成方法覆盖】
public class Cat extends Animal{
public void move() {
System.out.println("Cat is running!");
}
}
public class Bird extends Animal{
public void move() {
System.out.println("Bird is flying!");
}
}
方法重写发生在具有继承关系的父子类之间
方法名相同,返回值类型相同,形参列表相同
访问权限不能更低,可以更高
抛出异常不能更多,可以更少
4、建议方法重写的时候复制粘贴,避免出错。
5、注意:私有方法不能继承,所以不能覆盖
构造方法不能继承,所以不能覆盖。
静态方法不存在覆盖。
覆盖只针对方法,不谈属性。
Eclipse中可直接进行方法重写
空白处右键
选中点ok就可以自动生成
public class Tiger extends Animal {
@Override
public void move() {
// TODO Auto-generated method stub
super.move();
}
}