かふか
メソッドオーバーロード
method : method name = n : 1
1つのクラスで複数の同名メソッドを定義する
条件
long add(int a, long b) { return a + b; }
long add(long a, int b) { return a + b; }
public class c6_5_210413 {
public static void main(String[] args) {
MyMath3 mm = new MyMath3();
System.out.println(mm.add(3, 3)); // 매개변수가 모두 int형인 함수가 없으면 ambiguous 에러 발생
System.out.println(mm.add(3L, 3));
System.out.println(mm.add(3, 3L));
System.out.println(mm.add(3L, 3L));
int[] a = { 100, 200, 300 };
System.out.println(mm.add(a));
}
}
class MyMath3 {
int add(int a, int b) {
return a + b;
}
long add(int a, long b) {
return a + b;
}
long add(long a, int b) {
return a + b;
}
long add(long x, long y) {
return x + y;
}
int add(int[] arr) {
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
}
println()メソッドの呼び出し順序
// System.out.println(mm.add(3, 3));
int result = mm.add(3, 3);
System.out.println(result);
mm.add(3,3)はまず呼び出され、printlnが呼び出される.Reference
この問題について(かふか), 我々は、より多くの情報をここで見つけました https://velog.io/@solda/오버로딩-Overloadingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol