오버로드와 오버라이드의 차이점

Anonim

오버로딩과 오버라이드

오버로드 및 오버라이드가 대부분의 프로그래밍 언어의 기능입니다. 오버로딩은 동일한 클래스에서 동일한 이름을 가진 여러 메소드를 작성할 수 있지만 입력 유형과 함수 출력 유형에 따라 서로 다른 메소드를 작성할 수있는 기능입니다. 메소드 오버로딩은 일반적으로 함수 호출에서 유형 검사를 시행하는 정적 프로그래밍 언어와 연관됩니다. 이들은 VB와 관련이있을 가능성이 큽니다. Net, C ++, D, Java 등이 있습니다. 재정의는 객체 지향 프로그래밍에 사용되는 기본 기술이며 사용자가 기존 또는 상위 클래스에 이미 정의 된 메소드를 다시 정의 할 때 수행됩니다. 이 프로그래밍 기법에서 스크립트는 하위 또는 하위 클래스에 작성된 스크립트가 상위 클래스 또는 상위 클래스에 이미 설정된 일련의 방법 또는 명령어 세트를 구현할 수 있도록하여 특정 작업을 수행하도록 코딩됩니다.

컴퓨터 프로그래밍에서 오버로딩은 동일한 범위에서 둘 이상의 정의가 있고 동일한 이름이지만 다른 서명을 사용하는 방법에서 시작되었습니다. 메서드 구현은 비슷한 작업을 수행하기 때문에 동일한 이름을 공유합니다. 또한 과부하는 다형성의 사례로 인식되므로 연산자의 일부 또는 전체가 지정된 인수 유형에 따라 다른 구현을 가질 수 있기 때문에 식별됩니다. 재정의는 기본 클래스 함수가 ​​있는지 여부에 따라 달라집니다. 자식 클래스가 수퍼 클래스 또는 부모 클래스 중 하나에서 이미 사용하는 메서드를 구현할 수 있도록 허용하는 재정의 재정의 기능을 사용하면 하위 클래스 메서드에서 수퍼 클래스에서 사용 된 재정의 된 메서드와 동일한 이름, 매개 변수 목록 및 반환 형식 또는 서명을 할당 할 수 있습니다 있다.

오버로드는 프로그래머가 동일한 이름을 가진 여러 가지 다른 메소드를 작성할 수 있기 때문에 실용적이라고 간주됩니다. 런타임시 프로세서가 오버로드 된 모든 메서드의 이름을 변경하기 때문에 오버로드는 언어에 영향을 미칠 수 있습니다. 컴파일시에 해결됩니다. 재정의 (override)는 런타임에 해석되는 암시 적 첫 번째 매개 변수의 기반으로 설계된 다형성입니다.

요약:

용어 오버로드는 일반적으로 정적으로 프로그래밍 된 언어와 관련이 있으며 객체 지향 프로그래밍에서 우선권을 무시합니다. 오버로드의 방법으로 다른 서명을 갖는 동일한 메소드 이름을 갖는 클래스의 메소드가 지정된다. 같은 메소드 명과 같은 인수 / 서명을 가지는 클래스의 메소드로서 오버라이드 (override)됩니다. 오버로드는 동일한 클래스에서 사용 가능한 메소드들간에 일정한 관계를 공유하지만, 오버라이드에서는 수퍼 클래스 메소드와 서브 클래스 메소드 간의 관계가 생성됩니다.

오버로딩은 수퍼 클래스에서의 상속을 허용합니다.

오버라이드에서, 서브 클래스 메소드는 수퍼 클래스를 대신합니다.

오버로딩은 다른 메소드 시그니처를 가져야하며 오버라이드는 동일한 시그니처를 할당해야합니다.