好的-我遇到了一个问题,我很难解决。

我有两种形式-一种是从另一种继承。我们将它们称为FormParent和FormChild。

MyFunction()在FormParent中定义。我不需要重写它,因为它将对许多不同的形式执行相同的基本操作,但是它调用DoSomethingUnique()。 DoSomethingUnique在父级中定义,在子级中覆盖。

我的问题是,因为我没有覆盖MyFunction(),所以当我从FormChild调用它时,它所调用的DoSomethingUnique()版本是FormParent而不是FormChild的函数。

有什么方法可以避免重写这两个函数,但是将DoSomethingUnique()的版本称为FormChild的版本吗?

最佳答案

您想要做的当然可以。您只需要确保已安装正确的修饰符即可。

在FormParent中。

virtual public void DoSomethingUnique()


在FormChild中

override public void DoSomethingUnique()


如果未使用override显式修改方法,则将在FormParent中调用该方法。

显然用您的返回类型替换void。

10-07 12:31