Skip to main content

기능 과부하 란 무엇입니까?

기능 과부하는 동일한 이름이지만 입력 매개 변수 또는 반환 유형이 다른 여러 메소드를 생성 할 수있는 많은 프로그래밍 언어의 기능입니다.이것은 객체 지향 프로그래밍의 일반적인 기능입니다.생성자는 특히 여러 개의 다른 과부하 변형을 가질 수 있습니다.기본적으로 기능 과부하는 두 기능이 매우 유사한 작업을 수행하고 여러 유형의 입력을 수행 할 수있는 경우 유용합니다.생성자는 명시적인 반환 유형이 지정되지 않기 때문에 쉽게 과부하 될 수 있으므로 생성자의 입력 매개 변수를 변경하는 것은 유효한 과부하입니다.예를 들어, 두 개의 정수를 입력하는 ADD라는 함수를 고려할 수 있습니다.이 기능의 목적은 상당히 분명합니다.그것은 두 가지 숫자의 합을 찾기위한 것입니다.그러나 두 플로트 또는 소수점 숫자의 합을 찾으려면이 기능은 적용되지 않습니다.따라서 두 번째 과부하 기능이 필요하며, 두 개의 플로트를 입력하는 ADD라는 함수로 정의됩니다.함수는 본질적으로 동일하지만 입력이 크게 다르기 때문에 기능 과부하가 필요합니다.이전 예제를 사용하면 과부하 된 ADD 함수 모두 무효 리턴 유형이 있는지 고려할 수 있습니다.즉, 그들은 아무것도 돌려주지 않았습니다.이것은 여전히 유효한 기능 과부하이지만 두 가지 메소드의 리턴 유형도 변경 될 수 있습니다.오버로드의 또 다른 유효한 인스턴스에서, 두 개의 정수를 취하는 추가 함수는 해당 정수 합계를 반환 할 수 있으며, 두 십진 숫자를 취하는 추가 함수는 그 소수점 숫자 합계를 반환 할 수 있습니다., 유효한 기능 과부하로 간주되지 않습니다.기능의 반환 유형 만 변경하면 모호성이 필요합니다. 반환 유형이 원하는 메소드 서명에서 명확하지 않기 때문입니다.매개 변수는 모호하게 정의 될 수 있으므로 과부하 된 기능을 올바르게 호출하는 것이 매우 중요합니다.예를 들어, 전체 숫자가 입력 매개 변수로 구성된 오버로드 된 함수가 있고 매개 변수로 소수점 번호가있는 다른 숫자가있는 경우 누군가가 실수로 소수점 기능을 호출하는 것이 매우 쉽습니다.동일한 이름을 가지기 때문에 또는 그 반대도 마찬가지입니다.이와 같은 모호한 매개 변수는 가능한 경우 피해야하며, 할 수없는 경우 적절한 과부하 기능이 적절한 시간에 호출되도록주의를 기울여야합니다.그리고 코드에 많은 유연성을 제공합니다.과부하 된 기능에 대한 최종 고려 사항 중 하나는 적절한 주석이 필수적이라는 것입니다.입력 매개 변수가 다른 특정 상황에 대해 과부하 된 함수의 버전이 무엇인지 명확 할 수 있지만, 다른 과부하 파트너와 다른 기능이 무엇을하는지 항상 명확하지 않을 수 있습니다.