3

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

我有两种形式——一种继承自另一种。我们称它们为 FormParent 和 FormChild。

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

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

有什么方法可以避免覆盖这两个函数,但有称为 FormChild 版本的 DoSomethingUnique() 版本?

4

1 回答 1

1

你想做的事情肯定会奏效。你只需要确保你有正确的修饰符。

在FormParent..

virtual public void DoSomethingUnique()

在 FormChild

override public void DoSomethingUnique()

如果您没有显式修改该方法,override那么您将在 FormParent 中调用该方法。

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

于 2013-10-04T19:38:26.840 回答