【Java】方法的重载
超载
在Java中,即使是执行相同功能的方法,也需要根据参数的不同数量和参数的不同数值来创建不同的方法。那么,在这种情况下,应该如何命名方法呢?当然可以通过为每个方法分配不重复的名称来避免重复,但是如果只有参数的数量作为名称,那么仅仅通过名称就很难记住它们。在这种情况下,重载就非常有用了。
有相同名称的方法
请看以下的程序。max()方法是用来返回两个int类型变量中较大的那个。
class Max{
static int max(int x, int y){
if(x>y)
return x;
return y;
}
}
考虑将其扩展为返回较大值的double类型变量。
需要创建一个针对double类型参数的新方法,这时方法名将变得关键。在Java中,方法名可以根据变量名的规则由程序员自由选择。处理int类型值和处理double类型值,其参数类型和返回值类型都不同,因此给方法取名为doubleMax()等,以区分是完全合理的。然而,从使用方法的角度来看,“从参数中返回最大的值”这个处理并不会改变,因此不需要根据参数的数量和类型选择不同的名称来创建不同的方法,使用相同的名称即使参数的数量不同也应该更方便。
定义这样的、参数数量不同但名称相同的方法被称为重载。通过重载,程序员无需查找相应的参数方法,而是可以专注于方法本身的“功能”来编写程序。
class Max{
static int max(int a, int b){
if(a>b)
return a;
return b;
}
static double max(double a, double b){
if(a>b)
return a;
return b;
}
}