본문으로 바로가기

자바 오버로딩(Overloading)

category 코딩/Java 2016. 9. 6. 09:00




1. 오버로딩 이란?


한 클래스 내에서 같은 이름의 메서드를 여러개 정의하는 것을 메서드 오버로딩이라 한다. 오버로딩은 하나의 메서드 이름에 하나의 기능만을 구현 하는데, 하나의 메서드 이름으로 여러 기능을 구현하는 것이다.



2. 오버로딩의 조건


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

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

3. 매개변수는 같고 리턴타입이 다른 경우는 오버로딩 성립불가



3. 오버로딩의 예



위의 경우는 메서드의 이름은 같으나 매개변수 타입이 다르므로 오버로딩이 성립한다.



메서드의 이름이 같고, 매개변수의 타입이 int, long로 동일하다. 그러나 매개변수의 a, b의 타입 순서가 다르므로 오버로딩이 성립한다.



단, 위와 같이 int a, long b 두 매개변수의 순서만 바꾼것은 오버로딩이 성립하지 않는다.



리턴타입만 다른 경우도 오버로딩이 성립되지 않는다.



4. 오버로딩의 장점


오버로딩이 지원되지 않는다면 메서드도 변수처럼 이름으로 구별해야 돤다. 즉 한클래스내의 모든 메서드들은 이름이 모두 달라야 한다.


위의 예에서 add 메서드 (더하는 기능)를 구현하려면 변수 타입별로 모두 이름이 달라야 한다.





즉 더하는 기능을 가진 메서드 add를 구현하면 위와같이 되어야 한다. 모두 근본적으로는 같은 기능을 하는 메서드 들이지만, 서로 다른 이름을 가져야 하므로 메서드를 작성하는 쪽과 사용하는 쪽 모두 불편하게 된다.


하지만 오버로딩을 사용한다면 이런 불편함 없이 같은 기능을 하는 메서드 들을 같은 이름으로 사용할 수 있게 된다.



'코딩 > Java' 카테고리의 다른 글

객체지향 2부 - 변수, 메서드  (0) 2016.09.10
객체지향 1부 - 특징, 클래스와 객체  (0) 2016.09.07
자바 - 이름 붙은 반복문  (0) 2016.09.04
자바 - continue문  (0) 2016.09.04
자바 break문  (0) 2016.09.03
RSS구독 링크추가 트위터 이메일 구독