重载和重写的区别
重载
在同一个类中定义多个同名方法,
- 但参数列表不同(参数类型、参数个数或参数顺序不同)
- 返回值类型不同。
public class MathOperations {
int add(int a, int b) {
return a + b;
}
double add(double a, double b) {
return a + b;
}
}
重写
子类重新定义父类中已有的方法。
- 方法名、参数列表和返回类型必须与父类方法相同。
public class MathOperationsSon extends MathOperations{
@Override
double add(double a, double b) {
return (a+b)*2;
}
@Override
int add(int a, int b) {
return (a+b)*3;
}
}