innn

오버로딩(Overloading) 본문

JAVA/자바의 정석 기초편_남궁성(2020)

오버로딩(Overloading)

33삼 2022. 6. 25. 15:19

오버로딩 이란?

한 클래스 안에 같은 이름의 메서드 여러 개 정의하는 것.

대표적인 예가 println

컴파일러가 메소드의 매개변수에 따라 거기에 맞는 메소드를 연결해준다.

메소드 이름 한 개로 여러가지 일을 할 수 있는 것이다.

굳이 printlnStr, printlnInt 이런식으로 메소드 이름을 다르게 할 필요없다.

 

오버로딩 성립하기 위한 조건 3 가지

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

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

3. 반환 타입은 영향이 없다. 

 

아래는 오버로딩의 잘못된 예.

 

오버로딩이 아님. 중복정의임. 매개변수의 이름이 아니라 개수, 타입이 달라야한다.
반환타입이 int, long 으로 다르다고 해서 오버로딩이 아님. 반환타입은 영향없다.

 

 

+ 메소드 이름은 대부분 동사다. 어떤 작업을 하는 일이기 때문에.

메서드 이름이 같다 = 하는 일이 같다 = 작업이 같다 = 오버로딩

아래는 하는 작업이 같은, 오버로딩의 올바른 예.