JAVA/포스팅

자바 오버로딩이란?

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

자바에서 오버로딩(Overloading)은 동일한 메서드 이름을 사용하지만 매개변수의 개수, 타입 또는 순서가 다른 여러 버전의 메서드를 정의하는 기술을 말합니다. 오버로딩을 통해 동일한 메서드 이름으로 다양한 동작을 수행할 수 있으며, 이는 메서드의 다형성을 제공하고 코드의 가독성을 향상시킵니다.

 

오버로딩의 주요 특징

 

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 메서드는 이름이 동일하지만 매개변수의 타입과 개수가 다르므로 오버로딩으로 간주됩니다. 이렇게 정의된 메서드는 서로 다른 매개변수를 받아들이며, 호출 시 전달된 매개변수에 따라 해당하는 버전의 메서드가 호출됩니다.

오버로딩은 코드의 재사용성을 높이고 메서드 이름을 직관적으로 유지하여 가독성을 향상시키는데 도움이 됩니다. Java API에서도 오버로딩을 통해 많은 메서드가 제공되어 있으며, 이를 활용하여 다양한 상황에 대처할 수 있습니다.

 

With ChatGPT