技术文摘
C#中new和override的简单介绍
C#中new和override的简单介绍
在C#编程中,new和override是两个重要的关键字,它们在类的继承和多态性方面发挥着关键作用,但它们的功能和使用场景有所不同。
首先来看new关键字。当在子类中使用new关键字来修饰一个与父类中同名的成员(字段、属性、方法等)时,它表示在子类中定义了一个新的成员,这个新成员会隐藏父类中同名的成员。例如:
class Parent
{
public void Show()
{
Console.WriteLine("Parent's Show method");
}
}
class Child : Parent
{
new public void Show()
{
Console.WriteLine("Child's Show method");
}
}
在上述代码中,子类Child中的Show方法使用new关键字隐藏了父类Parent中的Show方法。当通过子类实例调用Show方法时,将执行子类中的版本。
然而,new关键字只是简单地隐藏了父类成员,并没有真正实现多态性。如果希望实现多态性,就需要用到override关键字。
override关键字用于在子类中重写父类中标记为virtual、abstract或override的虚方法、抽象方法或属性。重写是基于运行时的类型来决定调用哪个类的方法,这是多态性的核心体现。例如:
class Parent
{
public virtual void Display()
{
Console.WriteLine("Parent's Display method");
}
}
class Child : Parent
{
public override void Display()
{
Console.WriteLine("Child's Display method");
}
}
在这个例子中,子类Child重写了父类Parent中的虚方法Display。当通过父类引用指向子类实例并调用Display方法时,将根据对象的实际类型调用子类中的重写版本。
new关键字用于隐藏父类成员,主要在需要在子类中定义一个与父类成员同名但功能不同的新成员时使用;而override关键字用于实现多态性,确保在继承层次结构中根据对象的实际类型来调用正确的方法版本。正确理解和使用这两个关键字,有助于编写更灵活、可维护的C#代码。
TAGS: C# New关键字 override关键字 C#特性介绍
- 两位程序员的传奇经历
- 拙劣软件成功的原因
- 8个提升Web性能的技巧汇总
- 剖析HTML5应用程序缓存Application Cache技术
- 7款支撑起整个互联网时代的开源软件
- Ruby先驱者论该编程语言短板
- 2015年2月编程语言排行,JavaScript排名创历史新高
- 100行代码实现的JavaScript MVC样式框架
- JavaScript实现人脸检测方法,你感兴趣吗
- 姑娘,一起学编程呀
- 90后迎合为何难成功
- AppCan移动应用引擎全面开源,51CTO专题深度剖析
- 程序员的一天,似曾相识?
- 与程序员打交道的十大忌讳
- 微信开放JS SDK再给浏览器们上课 | 开发技术半月刊第131期 | 51CTO.com