如何继承继承的方法而不是覆盖继承的方法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何继承继承的方法而不是覆盖继承的方法?相关的知识,希望对你有一定的参考价值。

我有两个类,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

以上是关于如何继承继承的方法而不是覆盖继承的方法?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Kotlin 中用继承的类覆盖方法?

Java-继承与覆盖摘抄

协议继承 - 覆盖方法参数

继承与组合

C ++如何确保在使用虚拟继承时它调用继承而不是基函数

Java继承