오버로딩(Overloading)은 객체 지향 프로그래밍에서 동일한 이름을 가진 메서드나 생성자를 다른 매개변수 목록으로 여러 번 정의하는 것을 말합니다. 즉, 동일한 이름을 가진 다양한 시그니처의 메서드를 정의하여 다양한 입력에 대해 다른 동작을 수행할 수 있습니다. 오버로딩을 사용하면 같은 기능을 하는 메서드를 다른 매개변수로 호출할 수 있으며, 코드의 가독성과 재사용성을 높일 수 있습니다.
오버로딩은 다음 두 가지 조건을 만족해야 합니다:
메서드의 이름이 동일해야 합니다.
매개변수의 개수 또는 타입이 달라야 합니다.
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
public int add(int a, int b, int c) {
return a + b + c;
}
}
이제 다양한 매개변수를 사용하여 오버로딩된 add 메서드를 호출할 수 있습니다:
Calculator calculator = new Calculator();
int result1 = calculator.add(2, 3); // int add(int a, int b) 메서드 호출
double result2 = calculator.add(2.5, 3.7); // double add(double a, double b) 메서드 호출
int result3 = calculator.add(2, 3, 4); // int add(int a, int b, int c) 메서드 호출