我有一个抽象类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
}
}
Run Code Online (Sandbox Code Playgroud)
覆盖虚方法就是这样,覆盖默认(基本)实现并用新方法替换它.但是,如果您未为虚拟方法提供任何重写的实现,则会自动获得基本实现.所以,你的问题的答案只是首先不要覆盖add方法:
class B : A {}
Run Code Online (Sandbox Code Playgroud)
但是,如果您需要保留基本实现但希望扩展它,则可以使用base关键字从派生类显式调用基本实现.例如:
class B : A
{
public override void add(int a, int b)
{
base.add(a, b);
DoSomethingElse();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
795 次 |
| 最近记录: |