본문 바로가기

Java/자바의 정석 3판

객체지향 프로그래밍(1) - 오버로딩(Overloading)

오버로딩(Overloading)

 

오버로딩의 단어 뜻은 다음과 같다.

 

Overloading - 많이 싣는 것.

 

단어의 뜻으로 알 수 있듯이 같은 물체를 이용해서 많은 것들을 쌓아 올리는 것이다.

오버로딩이란, 하나의 메서드 이름으로 여러 기능을 구현하는 것이다.

 

 

오버로딩의 조건

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

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

 

오버로딩이 성립되기 위해선, 당연하게도 같은 메서드 이름을 사용해야한다.

그리고 무언가 차별점을 두기 위해서 매개변수의 개수 또는 타입이 달라야한다.

 

다만, 메서드의 수행 결과로 반환되는 값의 타입(리턴 타입)은 상관 없다.

 

 

오버로딩의 예

- println 메서드

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(String x)
....

println 메서드는 여러 타입을 다룰 수 있는데, 해당 메서드가 오버로딩되어 매개변수로 넘겨주는 값의 타입에 따라서 오버로딩으로 구현된 메서드 중 하나가 선택되어 실행되는 것이다.

 

 

오버로딩의 장점

오버로딩 기능이 없다면, 같은 기능을 하는 메서드일지라도 모두 다 다른이름으로 메서드를 선언하여야 할 것이다.

따라서, 오버로딩을 사용하면 메서드의 이름을 절약할 수 있다.

사용자는 오버로딩된 메서드들이 같은 기능을 한다는 점을 알 수 있고, 기억하기 용이하여 오류의 가능성을 줄일 수 있다.