오버로딩이라는 뜻은 사전적으로 과적하다 라는 뜻이다. C언어에서는
함수명이 오직 하나만 존재해야한다. 다시 말하면, 하나의 함수가 하나의 기능만을
할 수 있다는 의미이다. 하지만, 자바에서는 하나의 메서드 이름으로 여러 기능을
할 수 있다. 여러 기능이라는 것은 메서드명을 같게 하여 매개변수를 여러 형태로 받을
수 있다는 의미이다.
오버로딩의 정의는 자바의 한 클래스 내에 이미 존재하는 메서드명이 있더라도 매개변수
의 갯수, 타입, 순서가 다르면, 같은이름으로 여러 메서드를 생성하는 것을 말한다.
아래 예제가 있으니 예제를 보면 더 쉽게 이해가 갈 것이다.
매개값을 다양하게 받아 처리할 수 있도록 하기 위해서이다. 매개값을 다양하게 받으면 하나의 메서드명으로 여러 타입의 매개변수를 받을 수 있고, 객체지향의 특징인 다형성을 나타낸 예로도 볼수있다.
예를 들어 int끼리 더하는 메서드와, double형끼리 더하는 메서드를 만들고 싶다고 하자.
메서드명을 하나로 plus라고 하면 더 직관적이고 좋을 것이다. 그래서 아래와 같이 해주자.
직관적인 메서드명을 사용할 수 있고, 메서드명으로 더 고민할 필요도없다.
int plus(int x, int y){
int a=x+y;
return a;
}
double plus(double x, double y){
double a=x+y;
return a;
}