new更新C#继承中的虚函数

    通常情况下,base class定义一个virtual method,在derived class中override虚函数,将使新的类中的同名函数定义为自己的函数.
    但如果想在继承的中途改变基类的虚函数,可以在derivedC2用如public new virtual void...(new关键字)进行定义同名函数,则后面由此类继续的类中,覆写同名函数的基虚函数为更新后的.
    而由于derived classes无论是从base class还是从derivedC2中继承,它们的ancestor都是base class(因为derivedC2显然是从base class中派生),故如果写:
           baseClass obj = new derivedC2()
obj不认得derivedC2中全新的虚函数,所以obj还是调用baseClass的基虚函数.而如果在derivedC2中是简单覆写的话(通常情况下是这样的),则我们知道是应该调用derivedC2定义的函数的.

posted @ 2006-08-01 10:14  xiaoyixy  阅读(663)  评论(0编辑  收藏  举报