定义:
在同一个类中,可以出现方法名相同,不同数据类型的形参的方法(或函数)
有效范围:
- 方法名必须相同
- 参数列表必须不同(个数不同、类型不同、排列顺序不同等)
- 返回的类型可相同也可以不同
- 仅返回的类型不足成为方法的重载
原理:方法名相同时,会自动匹配选择符合的方法,若没有则报错
举例1:
package method;
public class Demo03 {
public static void main(String[] args) {
double max = max(12.1,2.0);
System.out.println(max);
}
//以下上方法的设置
//形参数据类型为int ,返回的数据类型为数值int
public static int max(int a ,int b) {
int result = -1;
if (a > b) {
result = a;
} else if (a == b) {
System.out.println("数字相同");
return 0;
} else if (a < b) {
result = b;
}
return result;
}
//形参数据类型为double,返回的数据类型为数值double
public static double max(double a ,double b){
double result = -1.0;
if(a>b){
result =a ;
}else if(a == b ){
System.out.println("数字相同");
return 0;
}else if(a<b){
result = b ;
}
return (int)result;
}
//形参数据类型为double和float,返回的数据类型为数值int
public static int max(float a ,double b){
double result = -1.0;
if(a>b){
result =a ;
}else if(a == b ){
System.out.println("数字相同");
return 0;
}else if(a<b){
result = b ;
}
return (int)result;//强制转换数据类型
}
}
例2 :自己举新例
3个数相加
package method;
public class Demo03D {
public static void main(String[] args) {
double sum = sum(1.0, 2.0,2.5);
System.out.println(sum);
}
public static int sum(int a,int b,int c ){
return a+b;
}
public static int sum(double a,double b,double c){
return (int)(a+b+c);//int强制转换
}
}