c 方法重寫和隱藏的學習示例

2022-09-26 08:54:12 字數 855 閱讀 4680

最近正在學習c#,對其中的方法重寫和隱藏的概念很是模糊,現在將其歸納如下:

1:方法重寫:就是在基類中的方法用virtual關鍵字來標識,然後在繼承類中對該類進行重寫(override),這樣基類中的方法已經被重寫了,已經失去了功能了。當讓基類的物件的引用直接指向繼承類的物件時(多型性),呼叫該方法則是呼叫的繼承類的方法。

2:方法隱藏:無論基類中的方法是否用了virtual關鍵字,繼承類中都可以用new關鍵字(如果不用new的程式設計客棧話,不會產生錯誤,但會生成乙個編譯警告)將基類中的方法隱藏,所謂隱藏就是隱藏,不像重寫,重寫就是原來的(基類中)已經不存在了,而隱藏是原來的還存在。所以當讓基類的物件的引用直接指向繼承類的物件時(多型性),呼叫該方法則是呼叫的基類的方法。

**如下:

複製** **如下:

public class baseclass

public virtual void functionb()

}puonpqdzdgbli程式設計客棧c class derivedclass:baseclass

&nbsonpqdzdgp;  public override void functionb()

}當利用多型性執行下面**時:

複製** **如下:

baseclass basefunction=new derivedclass();

basefunction.functiona();

basefunction.functionb();

得到的結果是:

複製** **如下:

basefunc程式設計客棧tiona

derivedfunctionb

本文標題: c#方法重寫和隱藏的學習示例

本文位址:

C 隱藏基類方法和重寫

本質上來說,是隱藏子類中基類的方法,但在子類中仍然可以訪問該功能。示例如下 namespace 隱藏基類和重寫 public class duck animal class program 執行結果為 值得注意的是,若在子類duck中不使用new,可以正常執行,但會生成乙個警告如下,說明隱藏了乙個基...

C 的隱藏 重寫 過載和資訊隱藏

賢哲所追求的不是享樂,而是源於痛苦的自由。面試過程中有被問到隱藏的概念。把隱藏答成類的資訊隱藏了,今天被乙個好心的面試官指出來,這裡重新學習一下。include include include using namespace std 過載 1.函式的可見範圍相同。不同cpp檔案的同名函式不構成過載。...

C 過載 隱藏和重寫

1.什麼是過載呢?過載 同乙個作用域,相同函式名,引數列表不同,與返回值是否相同沒有關係,過載又稱靜態多型 過載的作用 減輕程式設計師對函式名的記憶負擔,可讓所有功能相同的函式使用同乙個名字。引數列表不同可表現在 1 引數個數方面 例如 int add int i,int j int add int...