我有一个抽象类A,它具有带有部分实现的虚方法,并且它在类B中继承。我想在派生类中实现虚方法,我应该如何在派生类中获得基本实现。例如。
public abstract class A
{
public int Sum { set; get; }
public virtual void add(int a, int b)
{
Sum = a + b;
}
}
class B : A
{
public override void add(int a, int b)
{
// what should i write here
}
}
覆盖虚拟方法可以做到这一点,覆盖默认的(基本)实现,并将其替换为新的实现。但是,如果不为虚拟方法提供任何重写的实现,则将自动获取基本实现。因此,您的问题的答案就是根本不首先覆盖该add
方法:
class B : A {}
但是,如果您需要保留基础实现但希望对其进行扩展,则可以使用base
关键字从派生类中显式调用基础实现。例如:
class B : A
{
public override void add(int a, int b)
{
base.add(a, b);
DoSomethingElse();
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句