오버로딩이란, 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 말한다.
같은 일을 하지만 매개변수를 달리 해야하는 경우에 사용한다.
int add(int a, int b) { return a+b; }
long add(long a, long b) { return a+b; }
가변인자란, 메서드의 매개변수 개수를 동적으로 지정하는 기능으로,
타입... 변수명
형식으로 선언한다.
// 여러 문자열을 하나로 결합하여 반환하는 함수
String concatenate(String... str) {...}