Skip to main content

메소드 과부하 란 무엇입니까?

method method overloading은 대부분의 객체 지향 프로그래밍 언어에서 두 개 이상의 메소드가 동일한 이름을 공유하지만 다른 매개 변수를 갖는 기능입니다.구체적으로, 매개 변수의 숫자, 데이터 유형 및/또는 순서는 다릅니다.코드가 컴파일되면 코드가 호출되는 방법에 따라 올바른 메소드가 자동으로 선택됩니다.메소드는 일부 프로그래밍 언어의 함수라고도 알려져 있으므로 메소드 과부하를 기능 과부하라고합니다.getarea (square s)로 정의 될 수 있습니다.이 방법은 GetArea (Circle C) 메소드를 추가하여 원의 영역을 추가로 계산하기 위해 과부하 될 수 있습니다.

메소드 과부하의 주요 요구 사항은 메소드가 동일한 이름을 공유한다는 것입니다.그들의 방법 서명 mdash;메소드 이름, 매개 변수 수 및 매개 변수 데이터 유형 mdash;그렇지 않으면 독특해야합니다.이러한 방식으로 컴파일러는 실행할 방법을 결정할 수 있습니다.이는 비 디폴트 값으로 객체를 초기화하기 위해 수행됩니다.예를 들어, 두 개의 필드 (이름 및 생년월일 또는 DOB)가있는 직원 객체에는 다음의 과부하 된 생성자가있을 수 있습니다 : Employee (), 직원 (이름) 및 직원 (이름, DOB).첫 번째 생성자는 빈 이름과 DOB 필드를 가진 직원 객체를 만듭니다.두 번째는 이름 필드를 설정하지만 DOB 필드를 비워두고 세 번째는 이름과 DOB 필드를 모두 정의합니다.getArea () 예에서는 물리적으로 두 가지 방법이 있지만 발신자는 단일의 논리적 getArea () 메소드가 제공됩니다.이런 식으로, getArea ()는 다른 모양과 mdash에서 작동하도록 확장 될 수 있습니다.삼각형, 사다리꼴 등 mdash;여전히 단일 방법으로 논리적으로 자체를 제시하는 동안

메소드는 또한 거꾸로 호환성을 보존하기 위해 과부하됩니다.복잡한 계산을 수행하는 방법에는 약간의 변경으로 동일한 계산을 선택적으로 수행하기위한 새로운 요구 사항이 제공 될 수 있습니다.새로운 매개 변수가 계산을 수행하는 방법을 결정하는 메소드에 추가됩니다. mdash;기존 방식 또는 새로운 방법.새 방법은 이전 서명을 가지며 기존 코드로 호출됩니다.논리 자체가 포함되어 있지 않으며 단순히 수정 된 메소드를 호출하고 새 매개 변수에 대해 "이전 방법"의 기본값으로 전달됩니다.새 코드는 수정 된 메소드를 호출하고 적절한 값, 기존 방식 또는 새로운 방식으로 새 매개 변수를 전달합니다.

메소드 오버로드는 동일한 논리적 방법이 실제로 여러 방식으로 사용될 수있는 유형의 다형성입니다.메소드 과부하는 메소드 재정의와 다릅니다.메소드 오버라이딩은 부모 클래스에서 메소드의 정의가 아동 클래스에 의해 변경되는 곳입니다.이 경우 두 방법 모두 동일한 서명을 갖습니다.