首页 >后端开发 >C++ >方法签名中的'new”关键字意味着什么?

方法签名中的'new”关键字意味着什么?

Susan Sarandon
Susan Sarandon原创
2025-01-05 07:55:41713浏览

What Does the `new` Keyword Mean in a Method Signature?

方法签名中的新关键字

问题: new 关键字在方法签名中表示什么?

答案: 在方法签名中,新的关键字指示该方法是派生类中的新方法,隐藏了方法的基类实现。它与 override 关键字不同,override 关键字只能用于重写基类中声明的虚拟方法。

示例:

考虑以下基类:

public class Base
{
    public void BaseMethod() {}
}

现在,让我们创建一个派生类,使用 override 来重写 BaseMethod 方法关键字:

public class Derived : Base
{
    public override void BaseMethod() {}
}

在此示例中,override 关键字告诉编译器派生类中的 BaseMethod 方法正在重写基类实现。

但是,现在让我们创建一个不同的派生类class 并在方法签名中使用 new 关键字:

public class AnotherDerived : Base
{
    public new void BaseMethod() {}
}

上例中使用 new 关键字是因为派生中的 BaseMethod 方法类没有覆盖基类的实现。相反,它创建一个与基类方法同名的新方法。

new 和 override 之间的主要区别:

  • Overridable methods: override 关键字只能用于重写基类中的虚方法。 new 关键字可以隐藏虚拟方法和非虚拟方法。
  • 可见性: 重写的方法必须具有与基类方法相同或更高的派生可见性。新方法可以具有任何可见性。
  • 调用:如果从基类引用调用具有相同名称的方法,则将为重写的方法调用基类实现。但是,对于新方法,将调用派生类实现。

以上是方法签名中的'new”关键字意味着什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn