爪哇 中的方法重载
method overloading
.为什么要这样做(名称相同但参数不同)?
employee
and sometimes company gives 奖金 to their employee and sometimes it don’t.So If company don’t give 奖金 then we can use printSalary(int 薪水 )
method and if it provides 奖金 then we can use printSalary(int 薪水 ,int 奖金 )
so both methods are doing same work but their inputs are different so it will increase readability of programs.Otherwise if you give different methods name,it will become hard to understand.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
包 组织 . Arpit . 爪哇 2blog ; 上市 类 雇员 { 上市 虚空 printSalary( 整型 薪水 ) { 系统 . 出 . 打印 (“没有奖金的工资:”+ 薪水 ); } 上市 虚空 printSalary( 整型 薪水 , 双 奖金 ) { 系统 . 出 . 打印 (“加薪的工资:”+( 薪水 + 奖金 )); } 上市 静态的 虚空 主要 ( 串 args []) { 雇员 e1= 新 雇员 (); //如果没有提供奖金,我们可以使用此方法 e1.printSalary(20000); 系统 . 出 . 打印 (“ **********************”); //如果提供了奖金,我们可以传递给重载方法并增加薪水 e1.printSalary(20000, 10000); } } |
当您运行上述程序时,将得到以下输出:
**********************
奖金加薪:30000
方法重载规则:
参数数 | 重载的方法可以具有不同数量的参数 |
日期类型 | 重载方法的参数可以具有不同的数据类型 |
返回类型 | 返回类型可以更改,但参数数量或参数数据类型也应更改。 |
参数顺序 | 如果您更改参数序列,那么如果您具有不同的数据类型参数,它也是有效的方法重载。 |
建设者 | 可以超载 |
因此,您可以使用三种方式重载方法:
- 通过更改参数数量
- 通过更改参数的数据类型
- 如果参数的类型不同,则通过更改其顺序
通过更改参数数量
通过更改参数的数据类型:
在上面的示例中,我们将创建另一个方法,该方法将双精度数据类型作为输入。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
包 组织 . Arpit . 爪哇 2blog ; 上市 类 雇员 { 上市 虚空 printSalary( 整型 薪水 ) { 系统 . 出 . 打印 (“没有奖金的工资:”+ 薪水 ); } 上市 虚空 printSalary( 整型 薪水 , 双 奖金 ) { 系统 . 出 . 打印 (“加薪的工资:”+( 薪水 + 奖金 )); } 上市 虚空 printSalary( 双 薪水 ) { 系统 . 出 . 打印 (“没有奖金的工资:”+ 薪水 ); } 上市 静态的 虚空 主要 ( 串 args []) { 雇员 e1= 新 雇员 (); //如果没有提供奖金,我们可以使用此方法 //将调用printSalary(int) e1.printSalary(20000); 雇员 e2= 新 雇员 (); //将调用printSalary(double) e2.printSalary(30000.5); 系统 . 出 . 打印 (“ **********************”); //如果提供了奖金,我们可以传递给重载方法并增加薪水 e1.printSalary(20000, 10000); } } |
如果数据类型不同,则通过更改参数顺序
printSalary(double 奖金 ,int 薪水 )
. so by changing order of argument we can overload method.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
包 组织 . Arpit . 爪哇 2blog ; 上市 类 雇员 { 上市 虚空 printSalary( 整型 薪水 ) { 系统 . 出 . 打印 (“没有奖金的工资:”+ 薪水 ); } 上市 虚空 printSalary( 整型 薪水 , 双 奖金 ) { 系统 . 出 . 打印 (“加薪的工资:”+( 薪水 + 奖金 )); } 上市 虚空 printSalary( 双 奖金 , 整型 薪水 ) { 系统 . 出 . 打印 (“加薪的工资:”+( 薪水 + 奖金 )); } 上市 静态的 虚空 主要 ( 串 args []) { 雇员 e1= 新 雇员 (); //如果没有提供奖金,我们可以使用此方法 e1.printSalary(20000); 系统 . 出 . 打印 (“ **********************”); //如果提供了奖金,我们可以传递给重载方法并增加薪水 e1.printSalary(20000, 10000);< //变更顺序 e1.printSalary(2000.5, 20000); } } |