> 백엔드 개발 > C++ > 메소드 섀도 잉과 C#의 재정의의 차이점은 무엇입니까?

메소드 섀도 잉과 C#의 재정의의 차이점은 무엇입니까?

Patricia Arquette
풀어 주다: 2025-01-28 14:05:09
원래의
251명이 탐색했습니다.

C# 메소드 숨겨지고 다시 쓰기 : 자세한 설명 What's the Difference Between Method Shadowing and Overriding in C#?
C#에서 파생 클래스는 기본 클래스 메소드를 두 가지 방식으로 작동 할 수 있습니다 : 메소드 숨어 및 메소드 재 작성. 이 두 개념을 이해하는 것의 차이는 효과적인 코드 유지 보수 및 상속에 필수적입니다.

메소드가 숨겨져

가 숨겨져 있습니다 클래스가 Foundation Chinese 방법과 동일한 이름의 새로운 메소드를 선언 할 때, 다시 쓰기 방법과 같은 명시적인 진술은 없으면 메소드가 숨겨집니다. 새로운 명령문의 방법은 기본 클래스의 구현을 효과적으로 숨기고 자체 독립적 인 구현을 제공합니다. > 예 :

Clb가 클래스 B 인스턴스에서 clb.foo ()를 호출 할 때 클래스 B 및 출력 "1"의 구현을 실행합니다. 그러나 CLB를 클래스 A로 변환하면 발신자는 FOO () 및 출력 "5"의 기본 클래스 구현에 액세스합니다.

다시 작성

는 숨겨진 것과 다르면,이 방법은 미분 클래스에서 새로운 구현 방법의 구현을 다시 작성합니다. 이는 재정의 키워드를 사용하여 달성됩니다.

> 예 : 클래스 B의 인스턴스가 clb.bar ()를 호출 할 때 클래스 B에서 다시 쓰기 구현을 실행하고 "1"을 출력합니다. 필수 카테고리 A로 CLB를 변환하면 호출과 재현이 항상 호출되기 때문에 행동에는 영향을 미치지 않습니다. 주요 차이점

기초 방법을 숨기고 파생 클래스에 숨겨진 새 메소드를 만들어 기본 클래스의 구현을 숨 깁니다. 재 작성은 기본 클래스의 실현을 대체했습니다.

재 작성하려면 키워드가 필요합니다.

재 작성이 필요합니다. 재정의 키워드를 사용하여 예상 교체를 명시 적으로 표시해야합니다.
<code class="language-csharp">class A {
   public int Foo(){ return 5;}
}
class B : A{
   public new int Foo() { return 1;} //隐藏
}</code>
로그인 후 복사
숨겨진 파괴 상속 :

기본 클래스의 구현을 숨겨서 숨기는 것은 상속 체인을 파괴 할 수 있습니다. 상속 관계를 다시 작성합니다.

숨겨진 방법은 다형성이 아닙니다.

숨겨진 방법은 다중 상태 메커니즘 (예 : 동적 결합)의 영향을받지 않습니다. 다시 쓰기 방법은 다형성을 보여주고 실제 객체 유형에 따라 다른 응답을 만듭니다.

위 내용은 메소드 섀도 잉과 C#의 재정의의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿