欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C#的virtual方法小结

程序员文章站 2022-05-20 12:20:37
...

        定义为virtual的方法可以在子类里被重写,使用override可以用自己的方法重写新的基类方法。

        class YourDerivedGraphicsClass : GraphicsClass
        {
           public override void DrawRectangle() { }
        }

        override 关键字可确保派生自 YourDerivedGraphicsClass 的任何对象都将使用 DrawRectangle 的派生类版本。 派生自 YourDerivedGraphicsClass 的对象仍可以使用基关键字访问 DrawRectangle 的基类版本。

     

         使用 new 关键字可告诉编译器您的定义将隐藏基类中包含的定义。 这是默认行为。

 

        没有定义virtural的方法,可以在子类里有相同的方法出现,默认使用new于子类的同名方法,从而隐藏父类的同名方法。

 

        如果方法是Virtual的,然后子类使用了override, 编译器就生产代码。然后,在运行的时候,进行检测,看对象属于哪个类,然后调用这个类的方法。