C#中new和override的简单介绍

2025-01-02 03:02:05   小编

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#特性介绍

欢迎使用万千站长工具!

Welcome to www.zzTool.com