C#中方法重寫和方法隱藏的區別
在C#中,子類可以透過兩種機制重新定義或提供父類方法的新實現,這兩種機制被稱為方法重寫和方法隱藏。根據方法重新實現的方式,我們可以區分它們。
以下是方法重寫和方法隱藏之間的一些重要區別。
| 序號 | 要點 | 方法重寫 | 方法隱藏 |
|---|---|---|---|
| 1 | 定義 | 方法重寫是一種實現多型性的機制,其中超類和子類具有相同的方法,包括引數和簽名,當使用子類物件呼叫它時,將呼叫子類中的實現。 | 另一方面,方法隱藏可以定義為一種技術,使用者可以使用`new`關鍵字重新定義基類或父類的方法,這會導致隱藏基類為該特定方法提供的基本實現。 |
| 2 | 父類實現的訪問 | 在方法重寫中,子類可以訪問父類方法的實現。 | 在方法隱藏的情況下,無法透過子類引用訪問父類方法的實現。 |
| 3 | 使用的修飾符 | 對於方法重寫,使用`override`關鍵字。 | 在方法隱藏的情況下,使用`new`關鍵字在子類中定義新的實現。 |
| 4 | 實現型別 | 在方法重寫中,方法的實現型別為物件型別。 | 然而,另一方面,在方法隱藏中,方法的實現型別為引用型別。 |
| 5 | 父類到子類引用 | 在方法重寫中,當父類引用變數指向子類物件時,它將呼叫子類中的重寫方法。 | 另一方面,在方法隱藏中,當父類引用變數指向子類物件時,它將呼叫父類中的隱藏方法。 |
| 6 | 用法 | 方法重寫只重新定義方法的實現。 | 方法隱藏可以完全重新定義方法。 |
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP