method : method name = n : 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;
}
}
// System.out.println(mm.add(3, 3));
int result = mm.add(3, 3);
System.out.println(result);
mm.add(3, 3)이 먼저 호출 된 후에 println이 호출된다.