メソッドのオーバーロード
オーバーロードは、関数名は同じですが、クラス内の仮パラメーターが異なる関数です。
下面三个方法名字都相同为max(),但是参数类型不同
//比大小,两个整数
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;
}
//比大小,两个浮点数
public static int max(int num1,int num2){
//修饰符 修饰符 返回值类型 名字
int result=0;
if(num1==num2){
System.out.println("num1=num2");
return 0;
/*return还可以用来结束方法,如果相等会输出两行:
num1=num2
0
*/
}
if(num1>num2){
result = num1;
}else {
result =num2;
}
return result;//return一般写在方法最下面
}
//比大小,三个数
public static int max(int num1,int num2,int num3){
//修饰符 修饰符 返回值类型 名字
int result=0;
if(num1==num2){
System.out.println("num1=num2");
return 0;
/*return还可以用来结束方法,如果相等会输出两行:
num1=num2
0
*/
}
if(num1>num2){
result = num1;
}else {
result =num2;
}
return result;//return一般写在方法最下面
}
メソッドのオーバーロードのルール:
1 **。メソッド名は同じである必要があります**。上記のように
2 **。パラメータリストは異なる必要があります**(番号が異なる、タイプが異なる、パラメータの順序が異なるなど)。上記のように
3.メソッドの戻り値の型は同じでも異なっていてもかまいません。上記のように
4.異なる戻り値の型だけでは、メソッドのオーバーロードには不十分です。上記のように
実現理論:
メソッド名が同じ場合、コンパイラは呼び出し元のメソッドのパラメータ数とパラメータタイプに応じて1つずつ照合し、対応するメソッドを選択します。照合に失敗した場合、コンパイラはエラーを報告します。