1:方法重寫:就是在基類中的方法用virtual關鍵字來標識,然後在繼承類中對該類進行重寫(override),這樣基類中的方法已經被重寫了,已經失去了功能了。當讓基類的物件的引用直接指向繼承類的物件時(多型性),呼叫該方法則是呼叫的繼承類的方法。
2:方法隱藏:無論基類中的方法是否用了virtual關鍵字,繼承類中都可以用new關鍵字(如果不用new的話,不會產生錯誤,但會生成乙個編譯警告)將基類中的方法隱藏,所謂隱藏就是隱藏,不像重寫,重寫就是原來的(基類中)已經不存在了,而隱藏是原來的還存在。所以當讓基類的物件的引用直接指向繼承類的物件時(多型性),呼叫該方法則是呼叫的基類的方法。
**如下:
public class baseclass
public virtual void functionb() }
public class derivedclass:baseclass
public override void functionb() }
當利用多型性執行下面**時:
baseclass basefunction=new derivedclass();
basefunction.functiona();
basefunction.functionb();
得到的結果是:
basefunctiona
derivedfunctionb
文章出處:diy部落(http://www.diybl.com/course/4_webprogram/asp.net/netjs/20090313/161277.html#)
C c 中的重寫方法與隱藏方
1 父類中有方法a,新增virtua修飾符可宣告為虛方法,在子類中可以用override宣告後重寫方法a。2 父類中有方法a,在子類中可以有new修飾符宣告後隱藏父類方法。子類重寫方法後,對於子類的任何例項,父類的原方法a都已經不存在。子類隱藏父類方法後,父類的原方法仍然存在,當子類的例項的型別轉為...
方法重寫與方法過載
1 方法重寫 overiding method 1.1在物件導向程式設計中,子類可繼承父類中的方法,而不需要重新編寫相同的方法。但有時子類並不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要採用方法的重寫。方法重寫又稱方法覆蓋。若子類中的方法與父類中的某一方法具有相同的方法名 返回型別和參數...
方法過載與方法重寫
方法過載 就是在同乙個類中,方法的名字相同,但引數個數 引數的型別或返回值型別不同!方法重寫 它是指子類和父類的關係,子類重寫了父類的方法,但方法名 引數型別 引數個數必須相同!關於方法重寫的一些特性 1.發生方法重寫的兩個方法返回值 方法名 引數列表必須完全一致 子類重寫父類的方法 2.子類丟擲的...