国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

c#隱藏和重寫基類方法的異同

2019-11-17 03:23:40
字體:
來源:轉載
供稿:網友

c#隱藏和重寫基類方法的異同

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

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

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

代碼如下:

 1 public class BaseClass 2     { 3         public void functionA() 4         { 5             Console.WriteLine("BaseFunctionA http://m.survivalescaperooms.com/sosoft/"); 6         } 7         public virtual void functionB() 8         { 9             Console.WriteLine("BaseFunctionB http://m.survivalescaperooms.com/sosoft/");10         }11     }12    public class DerivedClass:BaseClass13     {14         public new void functionA()15         {16             Console.WriteLine("DerivedFunctionA http://m.survivalescaperooms.com/sosoft/");17         }18         public override void functionB()19         {20             Console.WriteLine("DerivedFunctionB http://m.survivalescaperooms.com/sosoft/");21         }22     }

當利用多態性執行下面代碼時:

BaseClass baseFunction=new DerivedClass();baseFunction.functionA();baseFunction.functionB();

得到的結果是:

BaseFunctionAhttp://m.survivalescaperooms.com/sosoft/

DerivedFunctionBhttp://m.survivalescaperooms.com/sosoft/


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 定陶县| 泸州市| 凤庆县| 柳州市| 黎川县| 门源| 仙居县| 溆浦县| 隆安县| 安龙县| 兰州市| 陇西县| 鄢陵县| 东港市| 吉木乃县| 东城区| 台江县| 三原县| 庆元县| 焦作市| 禄丰县| 成安县| 晋江市| 建湖县| 桦南县| 河南省| 鹤庆县| 凌云县| 西林县| 祁东县| 郸城县| 桐城市| 澄迈县| 潼南县| 信阳市| 九龙坡区| 永靖县| 武平县| 保靖县| 德庆县| 河池市|