🔸 한 클래스 내 같은 이름의 메서드를 여러개 정의하는 것
예) 연산자 '+' 오버로딩
- 부호(양수)
- 덧셈기호
- 문자열 결합
🔸 메서드의 이름이 같아야 한다.
🔸 매개변수의 개수나 타입이 달라야 한다.
🔸 오버로딩을 사용하지 않는 경우, 한 클래스 내 메서드들은 모든 다른 이름을 가져야 한다.
이 경우, 작성하는 입장에서도 이름을 번거로움도 생기고 사용하는 입장에서도 일일이 구분해서 사용을 해야하는 불편함이 있다.
🔸 오버로딩을 통해서 하나의 이름으로 정의한다면, 오류의 가능성을 줄일 수 있고 기능을 쉽게 예측할 수 있다. 메서드의 이름 또한 절약할 수 있다.
add메서드의 매개변수의 타입과 개수를 바꿔서 여러개의 add()를 정의
class Math{ int add(int a, int b){ return a + b; } int add(int a, long b){ return a + b; } int add(long a, int b){ return a + b; } int add(long a, long b){ return a + b; } int add(int[] a){ int result = 0; for(int i = 0; i < a.length; i++){ result = a[i]; } return result; } }