Roel Notebook

[Java] 메소드 오버로딩(method overloading)

by Roel Downey
728x90
반응형

메소드 오버로딩(method overloading)

메소드 오버로딩(overloading)이란 같은 이름의 메소드를 중복하여 정의하는 것을 의미한다.

하나의 클래스 내에 같은 이름의 메소드를 둘 이상 가질 수 없다.

 

하지만 매개변수의 개수나 타입을 다르게 하면, 하나의 이름으로 메소드를 작성할 수 있다.

즉, 메소드 오버로딩은 서로 다른 시그니처를 갖는 여러 메소드를 같은 이름으로 정의하는 것이라고 할 수 있다.

 

이러한 메소드 오버로딩을 사용함으로써 메소드에 사용되는 이름을 절약할 수 있다.

또한, 메소드를 호출할 때 전달해야 할 매개변수의 타입이나 개수에 대해 크게 신경을 쓰지 않고 호출할 수 있게 된다.

 

메소드 오버로딩의 대표적인 예로는 println() 메소드를 들 수 있다.

println() 메소드는 전달받는 매개변수의 타입에 따라 다음과 같이 다양한 원형 중에서 적절한 원형을 호출하게 된다.

 

메소드 원형

1. println()

2. println(boolean x)

3. println(char x)

4. println(char[] x)

5. println(double x)

6. println(float x)

7. println(int x)

8. println(long x)

9. println(Object x)

10. println(String x)

 

메소드 오버로딩의 조건

1. 메소드의 이름이 같아야 한다.

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

 

메소드 오버로딩은 반환 타입과는 관계가 없다.

만약 반환 타입만이 다른 경우에는 오버로딩이 성립하지 않는다.

 

 

728x90
반응형

블로그의 정보

What doing?

Roel Downey

활동하기