最近正在學(xué)習(xí)c#,對其中的方法重寫和隱藏的概念很是模糊,現(xiàn)在將其歸納如下:
1:方法重寫:就是在基類中的方法用virtual關(guān)鍵字來標(biāo)識,然后在繼承類中對該類進(jìn)行重寫(override),這樣基類中的方法已經(jīng)被重寫了,已經(jīng)失去了功能了。當(dāng)讓基類的對象的引用直接指向繼承類的對象時(多態(tài)性),調(diào)用該方法則是調(diào)用的繼承類的方法。
2:方法隱藏:無論基類中的方法是否用了virtual關(guān)鍵字,繼承類中都可以用new關(guān)鍵字(如果不用new的話,不會產(chǎn)生錯誤,但會生成一個編譯警告)將基類中的方法隱藏,所謂隱藏就是隱藏,不像重寫,重寫就是原來的(基類中)已經(jīng)不存在了,而隱藏是原來的還存在。所以當(dāng)讓基類的對象的引用直接指向繼承類的對象時(多態(tài)性),調(diào)用該方法則是調(diào)用的基類的方法。
代碼如下:
當(dāng)利用多態(tài)性執(zhí)行下面代碼時:
得到的結(jié)果是:
新聞熱點(diǎn)
疑難解答
圖片精選