中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

將不(bu)確定變成確定~類中(zhong)的override

回到目錄

說到override大家都知道,它是復(fu)寫,子類去復(fu)寫父類的方法(fa)與屬(shu)性(xing),是,沒錯,今(jin)天主要(yao)就說這個復(fu)寫,如果(guo)不復(fu)寫會有(you)什么結果(guo),有(you)沒有(you)想(xiang)過,呵呵

來和我做個demo吧!

 1  abstract class Parent
 2    {
 3        public virtual string Msg { get; set; }
 4    }
 5 
 6  
 7  class Sub : Parent
 8    {
 9        public override string Msg { get; set; } 
10 
11  }

 

在另外一個類中為sub這個屬性賦值,返回值為它的基類parent
static Parent display_message { get { return new Sub { Msg = "ok" }; } }

最(zui)后輸出這個Parent類型的屬性display_message ,結果是:

沒有問題,在給子類(lei)賦值(zhi)時,父(fu)類(lei)的屬(shu)性也被賦上了,試想一下,如果我(wo)們偏(pian)不用override復寫,直接用與主類(lei)同名(ming)的屬(shu)性呢(ni)

1  class Sub : Parent
2    {
3        public  string Msg { get; set; }
4 
5  }

 

編譯不會出錯,但VS會把它當成是一種警告
 

意思是說,如果(guo)是不希望(wang)保留(liu)基(ji)類的(de)同名屬性,請你用new關鍵進行(xing)說明一下,也好叫我知(zhi)道呀,呵呵。

當(dang)然(ran),運行的結果就是(shi)基類的Msg屬性被覆蓋了,如果就是(shi):

呵呵,有時(shi)我們(men)模棱兩可的東西可能(neng)成為(wei)一個(ge)代碼,一個(ge)程(cheng)序,甚至一個(ge)項目失(shi)敗的原因之一,所以請把(ba)不(bu)確定(ding)變成確定(ding)吧!

回到目錄

posted @ 2012-03-13 16:33  張占嶺  閱讀(963)  評論(1)    收藏  舉報