본문 바로가기

프로그래밍/JAVA

오버로딩의 조건

4.2 오버로딩의 조건
같은 이름의 메서드를 정의한다고 해서 무조건 오버로딩인 것은 아니다 오버로딩 이 성립
하기 위해서 는 다음과 같은 조건 을 만족해야한다.

1. 메서드 이름이 같아야 한다 .
2. 매개변수의 개수 또는 타입이 달라야 한다
3. 매개변수는 같고 리턴타입이 다른 경우는 오버로딩이 성립되지 않는다
(리턴타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다 . )

 

오버로딩의 예)

void println ()
void println(boolean x)
void println(char x)
void println(char[] x)
void println(double x)
void println(float x)
void println (int x )
void println(long x)
void println(Object x)
void println(String x)

 

int add (int a , int b ) { return a+b ;}
int add (int x , int y ) { r eturn x+y ;}

위의 두개의 메서드는 오버로딩이 성립하지 않는다. 메서드의 매개변수이름만 다를뿐 매개변수 타입이 같아서 성립하지 않는다.

 

오버로딩의 장점

모두 근본적으로 같은 기능을 하는 메서드들이지만 이름을 새로 지어야하는 것도 어렵고, 메서드를 일일이 기억하기 어려우므로 하나의 이름으로 정의되는 메서드는 기억하기 쉽고 메서드이름만 봐도 어떤 기능을 할것인가 예측가능함, 메서드이름을 짓는데 고민할 필요없고 동시에 사용되어야할 메서드 이름을 다른 메서드의 이름으로 사용할 수 있다.