我有两个类,分别是AlphaBeta,其中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

10-07 13:04