하나의 클래스에 같은 이름의 메서드를 여러 개 정의하는 것을 말함.
overload : 과적하다. 부담을 많이 지우다.
- 메서드의 이름이 같아야 함
- 매개변수의 개수 또는 타입이 달라야 함
- 매개변수는 같고 리턴타입이 다른 경우는 오버로딩이 성립 안됨
(리턴타입은 오버로딩을 구현하는데 아무런 영향을 주지 못함)
전달받는 매개변수의 타입에 따라 다음과 같이 다양한 원형 중에서 적절한 원형을 호출하게 된다.
class CalcUtil {
public static int add(int a, int b){
return a + b;
}
// 오버로딩(같은 이름의 다른 메서드를 생성)
public static int addThree(int a, int b, int c){
return a + b + c;
}
// 리턴 타입이 달라지더라도 오버로딩이 가능하다
public static long add(long a, long b, long c){
return a + b;
}
public static void print(String str, int num) {
System.out.println(str + num);
}
// 사용되는 매개변수 타입이 같더라도 위치가 달라지면 오버로딩이 된다.
// 이런 방식으로 오버로딩하는 것은 추천하지 않음
public static void print(int str, String num) {
System.out.println(str + num);
}
}
public class S08 {
public static void main(String[] args) {
}
}