반응형

한 클래스에 같은 이름을 가진 메서드가 여러개 있더라도, 매개변수의 개수와 타입이 다르면,

같은 이름으로 여러개의 메서드를 정의할 수 있다.

 

정리

1. 메서드 이름이 같아야 된다.

2. 매개변수의 개수 or 타입이 달라야 한다.

 

class Test{
    public void test(String test1){}               //1
    
    public void test(String test1, String test2){} //2
    
    public void test(int test1, String test2){}    //3
}

위 세개의 메서드는 test라는 이름으로 모두 같다.

 

하지만,

1번은 매개변수가 한개이고,

2번은 두개이다.

3번은 2번과 같이 두개의 매개변수를 갖고 있지만, 타입이 다르다.

 

그래서 1~3번의  test메서드는 모두 오버로딩이 성립된 것이다.

 

위의 예시에서 반환타입은 모두 void이지만, 오버로딩에 반환타입은 영향을 주지 않는다.

 

대표적인 예로 println()이 있다.

 

장점

변수의 경우는 이름이 모두 다르지만, 오버로딩이 가능한 메서드의 경우에는

같은 이름으로 여러개의 메서드를 만들 수 있는 것이다.

 

반응형