`
sangei
  • 浏览: 337235 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

C#的virtual方法小结

阅读更多

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

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

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

     

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

 

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

 

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

0
0
分享到:
评论

相关推荐

    Visual C# 2010程序设计教程(教程PPT+源代码)

    8.2.3 方法的继承与virtual、override及new关键字 8.2.4 sealed关键字与密封类 8.2.5 Abstract关键字与抽象类 8.3 多态性 …… 第9章 泛型 第10章 Windows窗体应用程序开发 第11章 C#数据库编程与ADO.NET 第12章 ...

    C#教程.pdf

    - **1.4 小结** - 本章简要介绍了Microsoft .NET的背景和概念,以及C#语言与.NET的关系及其主要特点。通过学习这些基础知识,读者可以更好地理解后续章节中涉及的技术细节。 **第二章:运行环境** - **2.1 .NET...

    C#经典教程

    - **1.4 小结** - 本章总结了.NET平台的概念以及C#语言的关键特点,为后续的学习打下了基础。 ##### 第二章:运行环境 - **2.1 .NET结构** - .NET框架主要包括公共语言运行时(CLR)和.NET Framework类库两大...

    C#完全手册(PDF格式 )

    - **虚方法**:使用virtual关键字声明虚方法。 - **重写方法**:使用override关键字重写虚方法。 - **抽象类**:不能实例化的类,用于定义模板。 **14.3 抽象与密封** - **抽象方法**:没有实现的虚方法。 - **...

    C#高级编程_委托和事件

    ### 小结 通过本文的讲解,我们可以看出委托和事件是C#中非常重要的特性,它们为我们提供了强大的功能,使我们的代码更加灵活、模块化和易于维护。无论是多线程编程、GUI编程还是通用库的设计,委托和事件都能发挥...

    详细介绍C#中的继承

    #### 四、小结 通过以上介绍可以看出,C#中的继承机制非常强大,它提供了多种方式来实现类之间的关系和行为的重用。正确理解和使用继承对于开发高质量的C#应用程序至关重要。需要注意的是,在设计类层次结构时应...

    C#程序设计语言与面向对象基础精简教程

    **8.3 小结** 事件是面向对象编程中的一个强大工具,用于实现组件之间的松耦合通信。通过使用事件,可以创建更加灵活和可扩展的应用程序架构。 --- 通过上述总结,我们可以看到C#作为一种面向对象的编程语言,...

    CSharp_Language_Specification(c#语言规范_原版)

    #### 小结 本文深入探讨了C#中关于属性访问器的重要概念,包括抽象属性声明和覆盖属性声明的特点及使用场景。理解这些概念对于开发高质量的C#应用程序至关重要。通过合理的使用抽象属性和覆盖属性,可以提高代码的...

    亮剑.NET深入体验与实战精要2

    本章小结 77 第2章 细节决定成败 79 2.1 Equals()和运算符==的区别 80 2.2 const和readonly的区别 82 2.3 private、protected、public和internal的区别 86 2.4 sealed、new、virtual、abstract与override 87 2.5 ...

    亮剑.NET深入体验与实战精要3

    本章小结 77 第2章 细节决定成败 79 2.1 Equals()和运算符==的区别 80 2.2 const和readonly的区别 82 2.3 private、protected、public和internal的区别 86 2.4 sealed、new、virtual、abstract与override 87 2.5 ...

    亮剑.NET深入体验与实战精要.part4(完)

     本章小结  第2章 细节决定成败  2.1 equals()和运算符==的区别  2.2 const和readonly的区别  2.3 private、protected、public和internal的区别  2.4 sealed、new、virtual、abstract与override  2.5 ...

    亮剑.NET深入体验与实战精要.part3

     本章小结  第2章 细节决定成败  2.1 equals()和运算符==的区别  2.2 const和readonly的区别  2.3 private、protected、public和internal的区别  2.4 sealed、new、virtual、abstract与override  2.5 ...

Global site tag (gtag.js) - Google Analytics