오버로딩(Overloading)

MIN·2023년 9월 15일

Java

목록 보기
8/36
post-thumbnail
이 글은 자바의 정석 기초편을 공부한 내용을 토대로 작성한 글입니다.
혹시 잘못된 내용이 있을 시 댓글로 알려주시면 감사하겠습니다 ^U^

🌼 오버로딩이란?

같은 클래스 내에서 메서드를 선언할 때 서로 구분하기 위해 이름을 다르게 설정해야 한다. 같은 이름이라면 호출했을 때 어떤 것이 실행되어야 할지 알 수 없기 때문이다.

하지만!! 메서드 내에 매개변수가 달라 구별이 가능하다면 같은 이름을 사용할 수 있도록 허용해준다. 이렇게 같은 이름의 메서드를 정의하는 것을 오버로딩이라고 한다.

매개변수가 구별되기 위해서는 다음과 같은 조건이 충족되야 한다.

매개변수의 타입이 다르거나 개수가 서로 달라야 한다.

(반환타입은 전혀 상관이 없다.)

int mul(int x, int y) { return x * y; }
double mul(double x, double y) { return x * y; }

위 예시의 각 메서드는 mul로 이름이 같고, 매개변수의 개수가 같지만 매개변수의 타입이 각각 int, double로 구분이 되기 때문에 오버로딩이 가능하다.

double mul(long x, long y) { return x * y; }
long mul(long x, long y) { return x * y; }   //오류 (오버로딩 불가)

위 예시는 반환타입만 다르고 매개변수 개수와 타입이 모두 같다.
이렇게 되면 오버로딩의 조건에 충족되지 않기 때문에 오류가 발생한다.




오버로딩 : 메서드의 매개변수가 서로 다르다면 (개수 또는 타입) 같은 이름으로 정의되는 메서드를 뜻한다.

기억하자!!

profile
기초부터 시작하는 감쟈 ※ 소개글 확인해주세요!! ※

0개의 댓글