日常生活的交流与学习

首页 新随笔 联系 管理

new 关键字、隐藏基类方法

new 关键字还可以用来隐藏基类中的方法。
当子类的方法名称与基类中的方法名称相同,但不希望子类的方法被视为重写(override)基类的方法时,可以使用 new 关键字来声明子类的方法,
从而隐藏基类的方法。

代码示例

public class BaseClass
{
    public virtual void Show()
    {
        Console.WriteLine("BaseClass.Show()");
    }
}

public class DerivedClass : BaseClass
{
    // 使用 new 关键字隐藏基类的方法
    public new void Show()
    {
        Console.WriteLine("DerivedClass.Show()");
    }
}

class Program
{
    static void Main(string[] args)
    {
        BaseClass baseObj = new DerivedClass();
        baseObj.Show(); // 调用 BaseClass.Show()

        DerivedClass derivedObj = new DerivedClass();
        derivedObj.Show(); // 调用 DerivedClass.Show()
    }
}

应用场景

  • 隐藏而非重写方法:在子类中,如果你不希望子类的方法重写基类的方法,而是完全独立于基类的方法,可以使用 new 关键字。例如,在某些特定场景下,子类需要提供与基类同名但功能不同的方法。
posted on 2024-08-31 12:47  lazycookie  阅读(6)  评论(0编辑  收藏  举报