JAVA - 메소드 오버로딩
- JAVA
- 2018. 2. 1. 14:07
이번 글 은 메소드 오버로딩에 대해
알아보겠습니다.
메소드 오버로딩은 대부분의 객체지향 언어가
지원하는 문법적인 요소입니다
이로 인해서 자바에서는 동일한
이름의 메소드를 둘 이상 정의할 수 있습니다.
매개변수의 형(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 |