方法的重载定义如下:
方法名相同:
重载的方法必须具有相同的名称。
参数列表不同:
参数列表的不同可以是参数的类型不同,参数的数量不同,或者即使参数数量相同,它们的类型顺序也不同。需要注意的是,如果方法的参数个数和类型的顺序都相同,那么这些方法就不能被视为重载。
返回类型无关:
方法的返回类型不影响方法是否被视为重载。即,仅通过返回类型是无法区分重载方法的。
访问修饰符无关:
重载方法的访问修饰符(如public、private等)可以不同。
编译时多态:
方法重载的调用是在编译时根据传递的参数类型和个数来决定的,这被称为早期绑定或静态绑定。
方法重载的主要目的是提供相同的功能但接受不同参数的方法,使得代码更加灵活和易于理解。例如,在Java中,你可以定义一个名为`add`的方法,它可以根据传入的参数是整数还是浮点数来执行不同的加法操作。
示例代码(Java):
```java
public class MathUtils {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
}
```
在这个例子中,`add`方法被重载了两次,一次接受两个整数参数,另一次接受两个浮点数参数。编译器根据传递的参数类型来决定调用哪个方法。