에서 c# 의 가상 및 새로운 키워드 사용. 객체 지향 프로그래밍에서 일반적으로 기본 클래스에 정의되며 이러한 방법은 파생형 클래스에서 다시 작성 또는 재정의됩니다. "가상"과 "새로운"키워드를 모두 사용하여 메소드 선언을 수정할 수 있지만 구현 방법이 다릅니다.
흙을 다시 쓰기
기본 클래스에서 "가상"으로 선언 된 메소드는 서브 클래스를 다시 작성할 수 있음을 나타냅니다.
파생어 클래스의 Foundation Chinese 방법과 동일한 이름의 새로운 방법을 명시하십시오.
기본 방법을 숨기고 파생 클래스에서 새 구현을 만듭니다.공개 클래스 기반 {{ 공개 가상 부울 dosomething () {return false;} } 공개 수업 파생 : 기본 : 기본 {{ Public Override bool dosomething () {return true;} }
파생 인스턴스를 생성하고 기본 유형 변수에 저장하면 DoSomething () 호출은 파생에서 다시 쓰는 메소드를 호출합니다.
public class Base
{
public virtual bool DoSomething() { return false; }
}
public class Derived : Base
{
public override bool DoSomething() { return true; }
}
반대로, 우리가 파생에서 새로운 키워드를 사용하면, dosomething ()에 대한 호출은 기본 유형이더라도 새로운 메소드를 호출합니다.
공개 클래스 파생 : 기본 {{ 공개 새로운 bool dosomething () {return true;} }
Base a = new Derived();
a.DoSomething(); // 返回 true
base a = new devived ();
a.dosomething (); // true로 돌아 가기 (도출 된 새로운 메소드)
public class Derived : Base
{
public new bool DoSomething() { return true; }
}
가상 재 작성을 사용하여 상속 체인을 유지하면서 동작을 상속하고 확장하십시오. Base a = new Derived();
a.DoSomething(); // 返回 true (Derived 中的新方法)
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3