重學《C#進階編程》(繼承)

來源:互聯網
上載者:User

標籤:

  前兩天重新看了《C#進階編程》裡的第四章:繼承與第六章:數組。OOP三大特性:封裝,繼承,多態,個人感覺繼承是實現多態的基礎,包括以後接觸的設計模式,都是繼承特性的衍生。

  繼承特性有兩種,實現繼承和介面繼承。

  實現繼承

 1     public class A 2     { 3         private string _str; 4         public string Str { get { return _str; } set { _str = value; } } 5  6         public void Amethod() 7         { 8         } 9     }10 11     public class B : A12     {13         private int _num;14         public int Num { get { return _num; } set { _num = value; } }15 16         public void Bmethod()17         { 18         }19     }

  上面的例子中 B類繼承自A類,它可以有A的開放屬性和方法,這些都是基礎的,就不一一講解了,自己看書比較快,懶得說。說下平時用得比較少的,容易忘記的東西吧,一個是建構函式,繼承體系中的建構函式是從父級函數一級一級往下構造的。

  例如上面的例子中:執行個體化一個B類,會先執行個體化一個父類,也就是A類,然後才會執行個體化B類。

  重構方法:當B類需要建立一個在A類已經存在的方法,如果A類的方法有標記是可以重構的,則B類可以在新方法中添加關鍵字 override重構該方法,否則就需要在B類方法前添加 new 關鍵字隱藏A類方法。

  介面繼承

  所謂介面介面繼承,按照不規範說法其實就是實現介面。介面規範有個比較容易忽略的地方時,介面可以規範屬性(不是欄位),其他的好像都差不多。個人感覺,介面其實就像一份規章制度,你要加入某個圈子,就必須遵守某個圈子的規章制度。

  舉例:想參加一場賽車比賽,肯定要報名參賽,具有一輛賽車,參加比賽。其中“報名參賽”,“有一輛賽車”,“參加比賽”,就抽象出來的介面裡面的方法和屬性。而要參加賽車的對象,就必須實現這個介面,也就是這幾個方法和屬性。賽車要實現這個介面,但又不會限定你如何去實現,報名可以報名,線下報名,電話報名......賽車可以是寶馬,平治,路虎,本田.....參加比賽,可以跑50碼,可以跑40碼,甚至可以停在賽道上

重學《C#進階編程》(繼承)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.