如何实现基类的虚方法以及如何在C#中的重写方法中获得基方法的实现

潘卡·库玛(Pankaj Kumar)

我有一个抽象类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
    }
}
lc。

覆盖虚拟方法可以做到这一点,覆盖默认的(基本)实现,并将其替换为新的实现。但是,如果不为虚拟方法提供任何重写的实现,则将自动获取基本实现。因此,您的问题的答案就是根本不首先覆盖该add方法

class B : A {}

但是,如果您需要保留基础实现但希望对其进行扩展,则可以使用base关键字从派生类中显式调用基础实现例如:

class B : A
{
    public override void add(int a, int b)
    {
        base.add(a, b);
        DoSomethingElse();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Java中,如何从派生类中的重写方法中调用基类的方法?

在基类中编写需要在子类中重写的方法实现?

如何在重写实现中调用方法的接口的默认实现?

如何在Python中实现list类的__contains__方法?

虚方法和重写方法中的c#可选参数

如何在C#中的基类上调用显式接口方法?

如何在CRTP实现中传递基类指针

为什么基类指针指向基类中的纯虚方法而不是派生类中的重写方法?

如何在Castle.Core中实现IProxyGenerationHook的类中实现Equals和GetHashCode的重写方法?

如何在Perl中的基类中调用方法

在基类中声明的C#接口方法无需在派生类中再次实现

如何在Java中实现许多类通用的定制方法?

如何为在基类中实现的按钮调用目标方法

如何在C#中重写基类的方法的某些部分

为什么在scala中无法在实现的基类中提供抽象重写方法的实现

如何在泛型类中实现Iterable <>方法

C#:在基类中定义方法实现,在派生类中定义属性

如何在抽象类中实现扩展方法

C#中的基类实现

如何在抽象基类中实现operator+

如何在单独的 Java 类的 OnClick() 方法中实现 startActivity()?

如何在python中实现账户类的转账方法

如何在C#中隐藏基类的私有方法?

如何在派生类中实现虚函数?

我如何在类构造中实现各种方法

Moq - 如何为泛型基类的方法实现模拟?

如何在 Java 类中实现 Kotlin 挂起方法?

如何将基类的实现用于接口类的纯虚方法?

如何在 C++ 中调用基类方法?