C#中方法重寫和方法隱藏的區別


在C#中,子類可以透過兩種機制重新定義或提供父類方法的新實現,這兩種機制被稱為方法重寫和方法隱藏。根據方法重新實現的方式,我們可以區分它們。

以下是方法重寫和方法隱藏之間的一些重要區別。

序號要點方法重寫方法隱藏
1定義方法重寫是一種實現多型性的機制,其中超類和子類具有相同的方法,包括引數和簽名,當使用子類物件呼叫它時,將呼叫子類中的實現。另一方面,方法隱藏可以定義為一種技術,使用者可以使用`new`關鍵字重新定義基類或父類的方法,這會導致隱藏基類為該特定方法提供的基本實現。
2父類實現的訪問在方法重寫中,子類可以訪問父類方法的實現。在方法隱藏的情況下,無法透過子類引用訪問父類方法的實現。
3使用的修飾符對於方法重寫,使用`override`關鍵字。在方法隱藏的情況下,使用`new`關鍵字在子類中定義新的實現。
4實現型別在方法重寫中,方法的實現型別為物件型別。然而,另一方面,在方法隱藏中,方法的實現型別為引用型別。
5父類到子類引用在方法重寫中,當父類引用變數指向子類物件時,它將呼叫子類中的重寫方法。另一方面,在方法隱藏中,當父類引用變數指向子類物件時,它將呼叫父類中的隱藏方法。
6用法方法重寫只重新定義方法的實現。方法隱藏可以完全重新定義方法。

更新於:2020年6月9日

3K+ 瀏覽量

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.