定义为virtual的方法可以在子类里被重写,使用override可以用自己的方法重写新的基类方法。
class YourDerivedGraphicsClass : GraphicsClass
{
public override void DrawRectangle() { }
}
override 关键字可确保派生自 YourDerivedGraphicsClass 的任何对象都将使用 DrawRectangle 的派生类版本。 派生自 YourDerivedGraphicsClass 的对象仍可以使用基关键字访问 DrawRectangle 的基类版本。
使用 new 关键字可告诉编译器您的定义将隐藏基类中包含的定义。 这是默认行为。
没有定义virtural的方法,可以在子类里有相同的方法出现,默认使用new于子类的同名方法,从而隐藏父类的同名方法。
如果方法是Virtual的,然后子类使用了override, 编译器就生产代码。然后,在运行的时候,进行检测,看对象属于哪个类,然后调用这个类的方法。
相关推荐
8.2.3 方法的继承与virtual、override及new关键字 8.2.4 sealed关键字与密封类 8.2.5 Abstract关键字与抽象类 8.3 多态性 …… 第9章 泛型 第10章 Windows窗体应用程序开发 第11章 C#数据库编程与ADO.NET 第12章 ...
- **1.4 小结** - 本章简要介绍了Microsoft .NET的背景和概念,以及C#语言与.NET的关系及其主要特点。通过学习这些基础知识,读者可以更好地理解后续章节中涉及的技术细节。 **第二章:运行环境** - **2.1 .NET...
- **1.4 小结** - 本章总结了.NET平台的概念以及C#语言的关键特点,为后续的学习打下了基础。 ##### 第二章:运行环境 - **2.1 .NET结构** - .NET框架主要包括公共语言运行时(CLR)和.NET Framework类库两大...
- **虚方法**:使用virtual关键字声明虚方法。 - **重写方法**:使用override关键字重写虚方法。 - **抽象类**:不能实例化的类,用于定义模板。 **14.3 抽象与密封** - **抽象方法**:没有实现的虚方法。 - **...
#### 四、小结 通过以上介绍可以看出,C#中的继承机制非常强大,它提供了多种方式来实现类之间的关系和行为的重用。正确理解和使用继承对于开发高质量的C#应用程序至关重要。需要注意的是,在设计类层次结构时应...
#### 小结 本文深入探讨了C#中关于属性访问器的重要概念,包括抽象属性声明和覆盖属性声明的特点及使用场景。理解这些概念对于开发高质量的C#应用程序至关重要。通过合理的使用抽象属性和覆盖属性,可以提高代码的...
本章小结 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 ...
本章小结 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 ...
#### 三、小结 通过上述分析,我们可以看到创建自定义实体需要实现多个接口方法以支持不同的操作,包括绘图、数据存储与读取、图形交互等。这些方法的实现细节对于确保自定义实体能够正确地在CAD环境中工作至关重要...
本章小结 第2章 细节决定成败 2.1 equals()和运算符==的区别 2.2 const和readonly的区别 2.3 private、protected、public和internal的区别 2.4 sealed、new、virtual、abstract与override 2.5 ...