一、函数重载的条件:(满足其一即可)
1)参数个数不同
2)参数类型不同
3)参数类型的顺序不同
示例:
1 /*函数重载条件*/ 2 public class FunctionDemo8 3 { 4 public static void main(String[] args) 5 { 6 System.out.println(add(3.5, 6)); 7 8 } 9 10 public static int add(int a, int b) 11 { 12 return a+b; 13 } 14 15 public static double add(double a, double b) 16 { 17 return a+b; 18 } 19 public static double add(double a, int b) 20 { 21 return a+b; 22 } 23 public static double add(int a, double b) 24 { 25 return a+b; 26 } 27 28 public static int add(int a, int b, int c) 29 { 30 return a+b+c; 31 } 32 }
二、原因:
1)调用函数实际是根据对应的函数名称去找到对应的函数入口地址,以此来进行调用
2)而不同的函数名称对应着不同的函数入口地址
3)函数名称的命名:
在C语言中:函数名称实质就是当前显示的函数名
eg:
int func(int a, char b, double c); 的实际函数名称为: func
在java语言中:函数名称实质为:函数名_参数类型名 eg: int func(int a, char b, double c); 的实际名称为:func_int_char_double
由此,我们也知道了C语言不能有函数重载,而java语言有函数重载的原因。