方法重载(Method Overloading)和方法重写(Method Overriding)是两个不同的概念,它们之间有很多不同的地方,主要有以下几点:
序号 | 方法重载 | 方法重写 |
1 | 方法重载用于提升程序的可读性 | 方法重写用于子类实现父类已有的方法,来满足子类特定的实现需求 |
2 | 方法重载在同一个类中实现 | 方法重写需要有继承关系的父子类中实现 |
3 | 方法重载的参数必须不相同 | 方法重写的参数必须相同 |
4 | 方法重载是编译时多态的例子 | 方法重写时运行多态的例子 |
5 | 方法重载返回类型可以一致,也可以不一致(不建议这样做) | 方法重写的返回类型必须相同 |
Java 方法重载的例子
class AdditionTest{
int add(int a, int b){return a + b;}
int add(int a, int b, int c) {return a + b + c;}
}
Java方法重写的例子
public class Animal {
void eat() {
System.out.println("Animal eat...");
}
}
class Cat extends Animal{
@Override
void eat() {
System.out.println("Cat eating...");
}
}