企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 什么是方法的重载: 方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。 调用时,会根据不同的参数自动匹配对应的方法。 注意本质:重载的方法,实际是完全不同的方法,只是名称相同而已! ## 构成方法重载的条件: ❀不同的含义:形参类型、形参个数、形参顺序不同 ❀ 只有返回值不同不构成方法的重载 如:int a(String str){}与 void a(String str){}不构成方法重载 ❀ 只有形参的名称不同,不构成方法的重载 如:int a(String str){}与int a(String s){}不构成方法重载 代码案例: ``` public class TestMethod05{ public static void main(String[] args){ //10+20: int sum = add(10,20); System.out.println(sum); //20+40+80: //System.out.println(add(add(20,40),80)); System.out.println(add(20,40,80)); //30+60+90+120: //System.out.println(add(add(30,60),add(90,120))); System.out.println(add(30,60,90,120)); //9.8+4.7: //System.out.println(add(9.8,4.7)); System.out.println(add(9.8,4.7)); } //定义一个方法:两个数相加:两个int类型数据相加 public static int add(int num1,int num2){ return num1+num2; } //定义一个方法:三个数相加: public static int add(int num1,int num2,int num3){ return num1+num2+num3; } //定义一个方法:四个数相加: public static int add(int num1,int num2,int num3,int num4){ return num1+num2+num3+num4; } //定义一个方法:两个数相加:两个double类型的数据相加 public static double add(double num1,double num2){ return num1+num2; } } ``` 总结: # 总结: ## 1.方法的重载:在同一个类中,方法名相同,形参列表不同的多个方法,构成了方法的重载。 ## 2.方法的重载只跟:方法名和形参列表有关,与修饰符,返回值类型无关。 ## 3.注意:形参列表不同指的是什么? ``` (1)个数不同 add() add(int num1) add(int num1,int num2) (2)顺序不同 add(int num1,double num2) add(double num1,int num2) (3)类型不同 add(int num1) add(double num1) ``` 4.请问下面的方法是否构成了方法的重载? (1)add(int a) 和 add(int b) --->不构成,相当于方法的重复定义 (2)public static int add(int a) 和 public static void add(int b) --->不构成 # 扩充代码: ``` public class TestMethod06{ public static void main(String[] args){ add(5); //级别:byte,short,char-->int-->long-->float--->double } public static void add(double num1){ System.out.println("------2"); } public static void add(float num1){ System.out.println("------3"); //重载了2 } public static void add(long num1){ //重载了 3 System.out.println("------4"); } /* public static void add(int num1){ System.out.println("------1"); } */ } ```