오버로딩(overloading) 이란?
- 한 클래스 내에 같은 이름의 메소드를 여러 개 정의하는 것을 말한다.
- 한 클래스 내에서 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면 같은 이름을 사용할 수 있다.
- 매개변수에 의해서만 구별될 수 있다.
오버로딩의 장점
- 같은 기능을 하는 메소드이지만, 매개변수의 개수나 타입이 다른 경우 모두 다른 메소드 명을 가져야 하는데 이를 간소화 해 준다.
가변인자(varargs)
- 메소드의 매개변수를 동적으로 지정할 수 있는 기능을 말한다.
- 매개변수 중 제일 마지막에 선언해야 한다.
- 내부적으로는 배열을 이용하는 형식이다.
- 예)
String concatenate(String... str) { ... }