首頁 > 後端開發 > C++ > 方法簽名中的'new”關鍵字意味著什麼?

方法簽名中的'new”關鍵字意味著什麼?

Susan Sarandon
發布: 2025-01-05 07:55:41
原創
757 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板