好的 - 我遇到了一个问题,我很难解决问题。
我有两种形式 - 一种是从另一种继承。我们称之为FormParent和FormChild。
MyFunction()在FormParent中定义。我不需要覆盖它,因为它将为许多不同的形式执行相同的基本操作,但它调用DoSomethingUnique()。 DoSomethingUnique在父级中定义并在子级中重写。
我的问题是因为我没有覆盖MyFunction(),当我从FormChild调用它时,它调用的DoSomethingUnique()版本是FormParent的函数,而不是FormChild。
有没有办法避免覆盖这两个函数,但是有DoSomethingUnique()的版本被称为FormChild的版本?
答案 0 :(得分:1)
你想做的事肯定会奏效。你只需要确保你有正确的修饰符。
在FormParent ..
virtual public void DoSomethingUnique()
在FormChild中
override public void DoSomethingUnique()
如果您没有使用override
显式修改方法,那么您将在FormParent中调用该方法。
显然用你的返回类型替换void。