하나의 클래스 내에서 동일한 이름의 메서드를 여러 개 사용할 수 있는 객체지향 기법
- 동작이 비슷하기 때문에 메서드 이름이 같게 만들어 사용하면 편리하다.(편리성)
시그니처(signature)
가 달라야 한다.개수
, 매개변수의 타입
컴파일 시점에서 사용될(호출될) 메서드가 결정(연결)되는 바인딩
- 컴파일러가 컴파일 시점에 자동으로 메서드명을 변경 해놓는 개념 *(_)
💡실행속도에 영향이 없다.
// 컴파일 전
public int add(int a, int b) {
int sum = a+b;
return sum;
}
public float add(float a, float b) {
float sum = a+b;
return sum;
}
// 컴파일 후
public int add_int_int(int a, int b) {
int sum = a+b;
return sum;
}
public float add_float_float(float a, float b) {
float sum = a+b;
return sum;
}
↗️정수형 ↗️매개변수 a,b
public int add(int a, int b) {
int sum = a+b;
return sum;
}
↗️정수형 ↗️매개변수 a,b,c
public int add(int a, int b, int c) {
int sum = a+b+c;
return sum;
}
↗️실수형 ↗️매개변수 a,b
public float add(float a, float b) {
float sum = a+b;
return sum;
}