方法重载的规则
- 方法名相同,参数列表不同。
- 参数列表不同包括,参数的个数和类型不同。如果只有参数名不同,不能算作方法重载。
- 如下三个方法是重载方法,它们的参数列表都是不同的。
public void display(){}
public void display(int n){}
public void display(float n){} - 如下两个方法不是重载方法,两个方法只是参数名不同,不满足方法重载条件。
public void display(int n){}
public void display(int d){}
方法重载的应用场景
- 当我们实现某一个功能,比如计算两个数的加法,而此时的数据可能是int、long类型,也有可能是float和double类型,如果我们定义四个方法分别计算这四种数据类型数据的和,方法名就要有四个。如果使用方法重载,只需要一个方法名就可以了,这样使用起来也更加方便。
- 像我们常用的println()方法,就包括多个重载的方法,用于输出不同数据类型的数据。所以,遇到方法功能相同,只是参数类型和参数个数不同的情况,就可以使用方法的重载
方法重载实例
定义两个重载的方法,分别求圆和长方形的面积。
public class AreaDemo {
// 求圆形面积
public double area(double r) {
double cArea = Math.PI * r * r;
return cArea;
}
// 求长方形面积
public double area(double l, double w) {
double rArea = l * w;
return rArea;
}
public static void main(String[] args) {
// 定义对象
AreaDemo ad = new AreaDemo();
// 定义一个double类型的变量存放半径,并初始化
double r = 4.5;
// 定义两个变量存放长和宽,并初始化
double l = 8, w = 5;
// 调用方法,求圆的面积并打印输出
double c_area = ad.area(r);
System.out.println("圆的面积为:" + c_area);
// 调用方法,求长方形面积并打印输出
double r_area = ad.area(l, w);
System.out.println("长方形的面积为:" + r_area);
}
}