Overloading ?
- 간단하게 말하면 같은 이름의 메서드에 다른 타입으로 사용할 수있도록 해주는 방식을 말한다.
- Java는 변수에 대해 타입이 정해져 있다보니, 다른 여러개의 이름을 많이 생성하면 햇갈리기 쉬워져 하나의 이름의 메서드에 대해 여러 타입을 만들어 사용하려고 만든 방법이다.
사용 방식
- 처음에 우리가 사용 했던 System.out.prinln() 또한 오버로딩을 사용한 방식인데, 해당 메서드의 구성을 보면 이렇다.
![](https://velog.velcdn.com/images/wonjun12/post/bdecf261-0940-4b1f-a4fd-ba9d8a73f71f/image.png)
- println()에 들어가는 방식에 여러 타입이 있다는 것을 볼수 있다. 이는 하나의 메서드의 역할을 다양하게 사용하기 위해 나눈 방식이다.
예시)
public class Add {
int add(int a, int b) {
return a + b;
}
double add(int a, double b) {
return a + b;
}
double add(double a, double b) {
return a + b;
}
String add(String a, String b) {
return a + b;
}
}
public static void main(String[] args) {
Add a = new Add();
System.out.println(a.add(2, 3));
System.out.println(a.add(2.3, 5.3));
System.out.println(a.add(2, 5.3));
System.out.println(a.add("hello", "bye"));
}