最近正在學習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...