# 什么是方法的重載:
方法的重載是指一個類中可以定義多個方法名相同,但參數不同的方法。 調用時,會根據不同的參數自動匹配對應的方法。
注意本質:重載的方法,實際是完全不同的方法,只是名稱相同而已!
## 構成方法重載的條件:
?不同的含義:形參類型、形參個數、形參順序不同
? 只有返回值不同不構成方法的重載
如: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");
}
*/
}
```