方法的重载
重载是什么?
重载就是在一个类中,有相同的函数名称,但形参不同的函数
方法重载的规则
- 方法名称必须是一样的
- 参数列表不同(参数个数、参数类型、参数排列顺序不同…)
public class Deemo {
public static void main(String[] args) {
}
//原方法
public int add(int x, byte y){
return x+y;
}
//方法的参数个数不同可以重载
public int add(int x, byte y, int z){
return x+y+z;
}
//方法参数类型不同可以重载
public int add(double x, double y){
return (int)(x+y);
}
//方法的参数排序不同可以重载
public int add(byte y, int x){
return x+y;
}
//仅仅方法的返回类型不同是不能重载的
public void add(int x, byte y){
}
}
- 方法的返回类型可以相同也可以不相同
- 仅仅返回类型不同不足以称为重载
重载的实现理论
方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择相应的方法。如果找不到,编译器报错
重载和重写的区别
重载是发生在同一个类中,重写发生在不同类中且类之间是继承关系。当父类中的方法不能满足子类的使用时,子类重写方法满足使用(重写方法名、参数必须完全相同)