1
在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
繼承的類調用A
實施Method
。
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