C#에서는 가상 메서드 추상을 표시하여 상속 된 클래스가이를 구현하도록 할 수 있습니다.추상 오버라이드로 선언 된 기본 메서드를 호출하는 방법
class A
{
public virtual void Method()
{
Console.WriteLine("A method call");
}
}
abstract class B : A
{
// Class inherited from B are forced to implement Method.
public abstract override void Method();
}
내가 B
로부터 상속 된 클래스에서 Method
의 A
구현을 호출하고 싶습니다.
class C : B
{
public override void Method()
{
// I would like to call A implementation of Method like this:
// base.base.Method();
}
}
가장 좋은 방법은 구현에서 "MethodCore"라는 보호 된 메서드를 추가하고 필요할 때 호출하는 것입니다.
class A
{
public virtual void Method()
{
MethodCore();
}
protected void MethodCore()
{
Console.WriteLine("A method call");
}
}
abstract class B : A
{
public abstract override void Method();
}
class C : B
{
public override void Method()
{
MethodCore();
}
}
다른 방법이 있습니까?
물론 특정 구현을 원한다면 그냥 제공해야합니다. 그러나 나는 "구현을 제공해야한다"라는 이점을 느낀다. – Orace
@Orace 불행히도, 부모 클래스의 메소드는 동시에 구현할 수있는 선택적이고 필수적 일 수 없다. – CKing