我有两个类,分别是Alpha
和Beta
,其中Beta
是从Alpha
继承的类。 Alpha
类具有一个名为Roger()
的方法。我希望Beta
类具有相同的Roger
函数,但是我不想覆盖Alpha
中的所有代码。我想从Roger
类执行Alpha
函数,然后在Beta
类中添加更多代码。
基本上,我想扩展Roger
方法,而不是完全替换它。这在C#中可能吗?
例如:Alpha
类:
protected virtual void Roger()
{
Console.Write("123");
}
Beta
类:protected something void Roger()
{
Console.Write("456");
}
并且
Beta.Roger()
将打印“ 123456” 最佳答案
您仍然可以使用override
关键字,但是在进行其他操作之前,您也应该先调用base.Roger()
:
protected override void Roger()
{
base.Roger();
Console.Write("456");
}
这等效于:
protected override void Roger()
{
Console.Write("123");
Console.Write("456");
}
Learn more about
base
here