- 重载就是在一个类中,有相同的函数名称(方法名),但形参不同的函数。
- 方法的重载规则
- 方法名称必须相同
- 参数列表必须不同(可以是个数不同、类型不同、参数排序不同等)
- 方法的返回类型可以相同也可以不相同
- 仅仅返回类型不同不足以成为方法的重载
- 实现理论
- 方法名称相同时,编辑器会根据调用方法的参数个数、参数类型等逐个匹配,以选择对应的方法,如果匹配失败,则编辑器报错。
package com.jiemyx.method;
public class Demo01 {
//main方法
//public static是修饰符,void空的意思,不返回值
public static void main(String[] args) {
//实际参数:实际调用传递给它的参数
int sum = add(1, 2);
System.out.println(sum);
int sum2 = add(1,2,3);
System.out.println(sum2);
}
//加法方法
//形式参数,用来定义作用的
public static int add(int a,int b){
return a+b;
}
//方法的重载
public static int add(int a,int b,int c){
return a+b+c;
}
}
package com.jiemyx.method;
public class Demo02 {
public static void main(String[] args) {
int max1 = max(10,10);
System.out.println(max1);
System.out.println("============");
//方法的重载
double max2 = max(0.6,0.5);
System.out.println(max2);
}
//比大小
public static int max(int num1,int num2){
int result = 0;
if (num1==num2){
System.out.println("num1==num2");
return 0; //终止方法
}
if (num1>num2){
result = num1;
}else {
result = num2;
}
return result;
}
//方法的重载
public static double max(double num1,double num2){
double result = 0;
if (num1==num2){
System.out.println("num1==num2");
return 0; //终止方法
}
if (num1>num2){
result = num1;
}else {
result = num2;
}
return result;
}
}