目录
1、重载的定义
允许同一类中,多个同名的存在,但要求形参列表一致。
2、与返回值类型无关。
package 方法的重载;
public class MathUtils {
//定义一个方法,求两个int类型数据之和
public static int sum(int a,int b){
return a+b;
}
//定义一个方法,两个Int类型的数之和用double类型返回值
public static double sum(int a,int b){
return a+b;
}
}
这里一个是int类型和double类型当返回值类型,因为方法名相同,里面的形参类型也形同系统不知道调用哪个方法会报错。
3、与方法的访问修饰符无关。
public class MathUtils {
//定义一个方法,求两个int类型数据之和
static int sum(int a,int b){
return a+b;
}
private static double sum(double a, int b){
return a+b;
}
}
这里int数据类型的没有访问修饰符,下面的是private修饰符会报错。所以跟访问修饰符也没关系。
4、参数列表不同第一个是指参数的个数。
下面是方法名相同,参数一个是两个,另一个是三个Int类型数据相加。
public class MathUtils {
//定义一个方法,求两个int类型数据之和
public static int sum(int a,int b){
return a+b;
}
//定义一个三个int类型的数据求和
public static int sum(int a,int b,int c){
return a+b+c;
}
}
测试代码:
public class Test {
public static void main(String[] args) {
//直接输出
System.out.println( MathUtils.sum(10,10));
System.out.println(MathUtils.sum(10,20,30));
}
}
运行结果:
5.参数的顺序
//这个是一个int类型和一个double类型数据相加,他们的顺序换
public static double sum(int a,double b){
return a+b;
}
public static double sum(double a, int b){
return a+b;
}
测试类:
public class Test {
public static void main(String[] args) {
//直接输出
System.out.println( MathUtils.sum(10,10));
//因为有返回值可以用一个类型起去接收
System.out.println(MathUtils.sum(12,12.5));
}
}
运行结果:
6、参数的类型
//第一个是两个Int类型数据求和
public static int sum(int a,int b){
return a+b;
}
//这是两个double类型数据求和
public static double sum(double a,double b){
return a+b;
}
测试类
package 方法的重载;
public class Test {
public static void main(String[] args) {
//直接输出
System.out.println( MathUtils.sum(10,10));
//因为有返回值可以用一个类型起去接收
double result2= MathUtils.sum(12.3,24);
System.out.println(result2);
}
}
运行结果:
7、小总结
方法重载与返回值类型无关,跟访问修饰符无关,要在同一类,并且参数列表不同(参数个数、参数顺序、参数类型)。
8、重载的好处
减轻起名的麻烦和减轻记名的麻烦。
写的不好,有不对的请见谅