[자바] 메서드 오버로딩 (Method Overoading)

컴공생의 코딩 일기·2021년 7월 22일
0

자바

목록 보기
2/10
post-thumbnail

메서드 오버로딩이란?(Method Overoading)

메서드 오버라이딩이란 클래스 안에 이름이 같은 메서드를 여러 개 정의하는 것 입니다.

하지만 같은 이름에 메서드를 사용하기 위해서는 아래와 같이 조건을 만족해야 합니다.

오버로딩의 조건(Method Overoading)

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

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

매개변수의 타입과 개수가 같으면 오류가 납니다.

(매개변수의 개수나 타입이 같고 리턴 타입이 다른 경우는 오버로딩이 성립되지 않습니다.)(Method Overoading)

매개변수의 타입과 개수가 같고 이름이 달라도 똑같이 오류가 납니다. 왜냐하면 컴퓨터는 매개변수가 어떤 이름인지에 대해 구분하지 않습니다.

컴퓨터가 메서드를 구분하는 시그니처

1. 메서드의 이름
2. 메서드의 매개변수 개수
3. 메서드의 매개변수 타입

즉 컴퓨터는 이 3개의 조건으로 메서드를 구분합니다.

메서드 오버로딩을 사용하는 이유?

일반적으로 메서드 사용 시 메서드명을 구분해서 사용합니다.

하지만, 같은 이름을 갖는 메서드라면, 매번 이름을 정의하는 것이 불편하기 때문에 이때 메서드 오버로딩을 사용합니다.

예시를 보시면 쉽게 와닿을 수 있을 겁니다.

위에 예시를 보면 methodTest 클래스 안에는 각각 정수형 매개변수가 있는 sum 메서드와 실수형 매개변수가 있는 sum 메서드가 정의되어 있습니다. sum 메서드의 기능은 두 개의 매개변수를 더해서 나온 값을 출력하는 기능입니다. main에서는 각각의 메서드를 호출하는 부분입니다.

잘 보시면 매개변수의 타입만 다를 뿐 두 개의 기능은 똑같죠? 이럴 때 메서드 오버로딩을 사용합니다.

즉 같은 기능을 하는 메서드를 번거롭게 다른 이름으로 정의하지 않고 하나의 이름으로 정의해서 같은 기능을 하는 메서드를 하나의 이름으로 묶어 놓기 때문에 복잡하지 않게 메서드를 정의할 수 있습니다.

profile
더 좋은 개발자가 되기위한 과정

0개의 댓글