오버로딩이 성립하기 위한 조건
- 메서드 이름이 같아야 한다.
- 매개변수의 개수 또는 타입이 달라야 한다.
- 반환 타입은 영향 없다.
int add(int a, int b) {
return a+b;
}
int add(int a, int b) {
return x+y;
}
int add(int a, int b) {
return a+b
}
int add(int a, int b) {
return (long)(a+b);
}
long add(int a, long b) {
return a+b;
}
long add(int a, long b) {
return a+b;
}
Ambiguous
package Day1012;
public class Ambiguous {
public static void main(String[] args) {
MyMath3 mm = new MyMath3();
System.out.println("mm.add(3, 3) 결과 : " + mm.add(3,3));
}
}
class MyMath3 {
public MyMath3() {}
1.
long add(long a, int b) {
System.out.println("int add(long a, int b) - " );
return a+b;
}
2.
long add(long a, long b) {
System.out.println("long add(long a, long b) - ");
return a+b;
}
3.
long add(int a, long b) {
System.out.println("long add(int a, long b) - ");
return a+b;
}
}
References