JAVA - 메소드 오버로딩

이번 글 은 메소드 오버로딩에 대해

알아보겠습니다.


메소드 오버로딩은 대부분의 객체지향 언어가

지원하는 문법적인 요소입니다

이로 인해서 자바에서는 동일한

이름의 메소드를 둘 이상 정의할 수 있습니다.



매개변수의 형(type)이 다르거나

개수가 다르거나


기본적으로 동일한 이름의 메소드는

정의가 불가능하다고 생각할 것입니다.

하지만 매개변수의 선언형태가 다르면

동일한 이름의 메소드를 정의할 수 있습니다.


이를 가리켜 메소드 오버로딩이라고 합니다

다음은 메소드가 오버로딩 된 예를 보여드리겠습니다



위의 클래스에는 총 세 개의 Func 메소드가

정의되어 있습니다. 이렇게 하나의 클래스 안에

세 개의 메소드가 정의될 수 있는 이유는 세 메소드

상호간에 매개변수의 자료형, 매개변수 개수가

다르기 때문입니다.


그렇다면 이렇게 동일한 이름의 메소드가 둘 이상

정의되어도 메소드 호출 시에 문제가 되지는 않을까?


메소드 호출 시 전달되는 값의 형태에 따라서

호출되어야 할 메소드가 구분되기 때문에 

문제되지 않는다.


아래의 코드를 보자


위의 코드에서 보이듯이 전달되는 데이터의

개수 및 자료형에 따라서 호출되어야 할

메소드의 구분이 가능하기 때문에 메소드의 

오버로딩이 가능하다.


반환형이 다르면 오버로딩이

성립 되지 않는다 


반환형이 다르면 메소드 오버로딩은

되지 않습니다. 

아래의 예시를 보겠습니다



위와같이 반환형이 서로 다른 경우에는

오버로딩이 성립 될 수 없습니다



 


'JAVA' 카테고리의 다른 글

JAVA - 문자열 토큰(Token)  (0) 2018.02.01
JAVA - static변수  (0) 2018.02.01
JAVA - 오버라이딩  (0) 2018.02.01
JAVA - 접근제어 지시자  (0) 2018.01.31
JAVA - OOP란?  (0) 2018.01.31

댓글

Designed by JB FACTORY