JAVA/포스팅

자바 오버로딩의 조건

짜집퍼박사(짜박) 2023. 11. 8. 14:50

자바에서 메서드 오버로딩을 성공적으로 구현하기 위한 조건은 다음과 같습니다.

 

1. 메서드 이름이 동일해야 합니다

오버로딩된 메서드는 동일한 메서드 이름을 가져야 합니다. 메서드 이름은 동일해야 하며, 대소문자를 구분합니다.

 

2. 매개변수 리스트가 달라야 합니다

매개변수 리스트는 매개변수의 개수, 타입 또는 순서가 서로 달라야 합니다. 즉, 매개변수 리스트가 다르면 오버로딩이 가능합니다.

 

3. 리턴 타입은 오버로딩에 영향을 주지 않습니다

오버로딩된 메서드의 리턴 타입은 오버로딩에 영향을 주지 않습니다. 리턴 타입이 다르더라도 매개변수 리스트가 다르면 오버로딩이 성립합니다.

 

4. 매개변수의 타입이 서로 구분될 수 있어야 합니다

오버로딩된 메서드의 매개변수 타입은 서로 구분될 수 있어야 합니다. 즉, 매개변수 타입이 모호하지 않고 구별되어야 합니다.

예를 들어, 다음은 유효한 오버로딩의 예시입니다.

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;
    }
}

위의 Calculator 클래스에서는 add 메서드 이름이 동일하며, 매개변수 리스트가 서로 다르므로 이들은 유효한 오버로딩입니다.

다음은 유효하지 않은 오버로딩의 예시입니다.

public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
    
    public double add(int x, int y) {
        return x + y;
    }
}

위의 코드는 유효하지 않은 오버로딩입니다. 두 번째 add 메서드는 매개변수 타입이 int로 동일하므로 오버로딩으로 처리되지 않습니다. 오버로딩을 구현할 때 매개변수 타입을 구별하기 위해 매개변수의 개수, 순서 또는 타입을 다르게 해야 합니다.

 

With ChatGPT