메서드 오버로딩

벼랑 끝 코딩·2025년 2월 20일
0

Java

목록 보기
7/40

메서드 오버로딩

메서드를 선언할 때,
파라미터의 종류가 달라지는 경우가 있다.

예를 들어 계산기 프로그램이라고 하더라도,
숫자를 파라미터로 받아 계산해주는 프로그램이 있을 수도 있고,
문자열을 받아서 그 문자열을 합쳐주는 프로그램이 있을 것이다.

숫자 타입에 문자열을 받을 수도 어떻게 하지?
그냥 메서드를 여러개 만들면 된다.
그게 바로 메서드 오버로딩.

calculator(int a, int b)
calcaulator(int a, int b, int c)
calculator(double a, double b)
calculator(String a, String b)

메서드 시그니처

메서드 시그니처 = 메서드 이름 + 매개변수 타입(순서)
메서드 시그니처란, 메서드를 구분할 수 있는 메서드 식별자와 같다.


메서드 오버로딩 결론

메서드 오버로딩이란,
이름이 같고 매개 변수가 다른 메서드를 여러개 정의하는 것이다.
예시 처럼 매개변수 타입의 순서가 달라도 다른 메서드로 여겨진다.
메서드 시그니처가 같다면, 반환 타입이 달라도 오버로딩에 실패한다.

calculator(int a, String b)
calculator(String b, int a)
// 매개변수 순서가 달라 오버로딩 적용
int calculator(int a, int b)
String calculator(int a, int b)
// 메서드 시그니처가 같아 오버로딩 적용 불가, 컴파일 오류 발생

오버라이딩 용어와 비슷해서 혼동하는 경우가 있을 법 한데
개념을 확실히 잡고 오해하지 말자.

profile
복습에 대한 비판과 지적을 부탁드립니다

0개의 댓글