【c#】繼承

ZeroWM發表於2014-05-03

一、什麼是繼承?

  交通工具包含汽車、飛機、輪船等。汽車又分為小汽車、卡車等。這種類屬(is-a )的關係表示繼承。卡車(子類)是汽車(父類)的特殊化,既有汽車的發動機、輪胎,又有獨特的車斗(新特性)。


  回到C#中,繼承體現的是派生類要繼承基類的所有的成員變數和成員函式。



二、子類繼承父類

1. 子類繼承父類非private的屬性、方法、域、事件、索引指示器。對於構造方法,它不能被繼承,只能通過   base呼叫父類成員。

2. 子類可以擴充套件父類沒有的屬性和功能。

3. 子類還可以以自己的方式實現父類的功能(方法重寫)

  4.不允許多重繼承,但是通過多重介面可以實現。(不允許有多個親爹,但是可以有多個乾爹~)


三、繼承的優缺點

  優點:繼承把所有子類的公共部分都放在了父類,使得程式碼得到了共享,可以避免重複,減少出錯,並且繼承使得修改或擴充套件繼承而來的實現都較為容易。

  缺點:父類變,子類不得不變。繼承會破壞包裝,父類實現細節暴露給子類,增大了兩個類之間的強耦合的關係。


四、思想昇華

  VB中的模組跟C#繼承中父類有些類似,它也是把一些常用的函式抽象出來,放在模組裡共享,使用。各個窗體除了可以呼叫我們模組中的函式,還可以編寫自己特有的函式。

  由此想到的就是我們做的歸納總結,畫思維導圖或者做筆記的時候,儘量把重複的字只寫一次。這樣不僅僅可以調動大腦的積極性,又提高了效率。重複的工作做多了,就應該想想是不是有更簡單的方法來處理這些問題。如果沒有繼承,想必就沒有人類的進步了吧!


如有不妥還望指正!



相關文章