본문 바로가기
Programming/Java

[Java] 오버로딩 overloading

by hongchii 2021. 3. 6.
728x90
반응형

오버로딩 (overloading) 

: 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것. (메서드 오버로딩)

 

오버로딩의 조건

1. 메서드 이름이 같아야 한다.
2. 매개변수의 개수 또는 타입이 달라야 한다.

※ 반환 타입(리턴 타입)은 오버로딩을 구현하는데 아무런 영향을 주지 못한다.

 

 

오버로딩이 아닌 예시

int add(int a, int b){
   return a+b;
}
int add(int x, int y){
   return x+y;
}
//메서드의 이름이 같지만, 매개변수의 개수, 타입이 같아 오버로딩 조건이 성립하지 못한다.

 

int add(int a, int b){
   return a+b;
}
long add(int a, int b){
   return (long)(a+b);
}
// 리턴타입만 다른경우도 오버로딩이 성립하지 못한다.

 

 

오버로딩 예시

long add(int a, long b){
   return a+b;
}
long add(long a, int a){
   return a+b;
}
//매개변수의 순서가 다르기 때문에 오버로딩이 성립된다.

 

 

오버로딩의 장점

같은 일을 하는 메서드에 매개변수만 달리하면 되기때문에 기억하기 쉽고, 오류를 줄일 수 있다. 
메서드의 이름을 절약할 수 있다.

 

 

더보기

출처, 자바의정석

728x90
반응형

댓글