-C#의 숨겨진 및 재 작성에 대한 깊은 이해
객체 지향 프로그래밍에서 숨기기 및 재 작성은 코드 동작에 영향을 미치는 주요 개념입니다. 이 기사는 C#클래스의 상속 시스템에서 둘의 차이점을 탐구 할 것입니다.
두 가지 방법 "foo"와 "bar"를 포함하여 "a"가 있다고 가정합니다. "FOO"방법은 공개에 대해 선언되며 "Bar"방법 선언은 공개 가상이므로 파생 클래스가 구현을 다시 작성할 수 있습니다. 이제 "A"에서 상속 된 파생 상품 "B"를 고려하십시오.
숨겨진
HIDDEN에서 파생 클래스 "B"는 "FOO"라는 메소드를 정의하고 이름 및 매개 변수 목록은 기본 메소드와 동일합니다. 그러나이 경우 "B"에서 메소드의 구현은 기본 클래스를 다시 작성하지 않았습니다. 클래스 "B"에 새로운 독립 방법을 생성하여 기본 방법을 숨 깁니다.
예를 들어 제공된 코드 조각에서 :
"B"유형 객체는 "b"유형에 의해 "b"유형 객체에 액세스된다는 것을 나타냅니다.
다시 쓰기
반면에, 재 작성이 미분 클래스의 메소드에서 발생할 때, 메소드는 기본 클래스의 가상 메소드 또는 추상화 메소드와 동일하다. 이 경우, 파생 클래스의 구현은 기본 클래스의 구현을 명시 적으로 대체하고 파생 인스턴스의 기본 동작이되었습니다.
주어진 예에서 :
"A"기반의 "막대"명령문은 가상이므로 "재정의"키워드는 클래스 "B"가 그것을 다시 작성하고 자체 동작을 제공 할 수있게합니다.
충격
파생 인스턴스를 기본 클래스 참조로 변환 할 때 숨기는 것은 우발적 인 행동으로 이어질 수 있습니다. 이 경우, 기본 클래스의 숨겨진 메소드는 미분 클래스의 재 작성 방법 대신 호출 될 수 있으며, 이는 런타임 중에 오류가 발생할 수 있습니다.
그러나 재 작성은 상속 계층 구조를 따르고 일관되고 예상되는 행동을 보장하기 위해 이러한 클래스에 정의 된 적절한 방법이 파생 클래스의 적절한 방법으로 구현되도록합니다.
위 내용은 C#에서 그림자와 재정의의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!