[Java 개발] 제15회 오버로드

Java입문강좌

시작하며

여러분 안녕하세요!

DreamHanks의 254cm입니다.

이번 시간에는 오버로드에 대해 설명해 드릴게요.

Java의 전체 기사는 여기를 클릭해 주세요.

이전 기사는 [Java 개발] 제14회 접근 제어자(access modifier)에 대해서 배워봤습니다.

오버로드란?

자바는 하나의 메서드로 다양한 상황을 대응하기 위해서 오버로드라고 하는 기능을 제공합니다.

오버로드는 이름은 같지만 인수가 다른 메서드를 만드는 기술을 의미합니다.

오버로드의 주의점

메서드를 오버로드 하는 데는 세 가지 주의점이 존재합니다.

①메서드의 이름이 일치해야 합니다.

②메소드 반환 값의 데이터 형만 다른 메소드는 오버로드에 해당되지 않습니다.

③인수의 갯수 또는 인수의 데이터형이 달라야 합니다.

샘플 1

 

실행 결과

위의 displayItem 메서드는 오버로드 조건을 만족하기 때문에,

문제없이 동작할 수 있습니다.

샘플 2

위의 샘플을 보면, 오버로드의 다른 조건들은 만족스럽습니다만,

메서드명이 다른 것을 확인할 수 있습니다.

메소드 이름이 다르면 다른 메소드로 인식되기 때문에 위의 이미지와 같이 에러가 표시됩니다.

샘플 3

위의 샘플을 보시면 인수와 메서드명은 동일합니다만,

반환가만 다릅니다. 반환값만 다를 뿐 메서드를 분간할 수 없습니다.


위의 이미지와 같이 컴파일 에러가 표시됩니다.

샘플 4

위의 샘플을 보시면 인수의 이름만 다른 두 개의 메서드가 있습니다.

상기의 경우도 샘플 3과 마찬가지로 메서드가 인수의 이름이 다르다는 것만으로는

호출될 때 분간이 안가요.

그래서 위의 메소드는 오버로드에 해당되지 않습니다.

즉, 오버로드는 대상 메소드가 호출되는 곳이고,

인수로 구분할 수 있는 경우에만 오버로드에 해당됩니다.

컨스트럭터의 오버로드

콤스토락타도 방법의 하나인 것으로 오버로드할 수 있습니다.

샘플

 

실행 결과

 

끝으로

이번 기사는 이상입니다.

다음 시간에는 자바의 오버라이드 배워볼게요.

방문해 주셔서 감사합니다.

 

コメント