타입이 다른 경우
`add(int, int)`와 `add(double, double)`처럼 인자 타입으로 의미가 구분되면 오버로딩 후보입니다.
오버로딩은 이름을 공유하는 기능입니다. 컴파일러가 고를 단서는 반환 타입이 아니라 매개변수 목록에 있어야 합니다.
`add(int, int)`와 `add(double, double)`처럼 인자 타입으로 의미가 구분되면 오버로딩 후보입니다.
두 수와 세 수를 더하는 함수처럼 같은 동작의 입력 규모가 달라질 때 자연스럽습니다.
생략된 인자가 다른 오버로드와 같은 호출 모양을 만들면 모호성이 생깁니다.
같은 함수 이름을 가진 선언을 후보로 모읍니다.
타입, 개수, 순서가 호출문과 맞는지 확인합니다.
정확한 일치가 형 변환보다 우선합니다.
동급 후보가 둘 이상이면 호출을 결정할 수 없습니다.