C#繼承(一)——繼承的類型

        面向對象的三個最重要的概念是繼承、封裝和多態性。

    首先介紹一些面向對象(Object-Oriented,OO)術語,看看C#在繼承方面支持和不支持的功能。

        ●單重繼承:表示一個類可以派生自一個基類。C#就採用這種繼承。

●多重繼承:多重繼承允許一個類派生自多個類。C#不支持類的多重繼承,但允許接口的多重繼承。

●多層繼承:多層繼承允許繼承有更大的層次結構。類B派生自類A,類C又派生自類B。

其中,類B也稱爲中間基類,C#支持它,也很常用。

●接口繼承:定義了接口的繼承。這裏允許多重繼承。

    下面討論繼承和C#的某些特定問題。

1、多重繼承

    一些語言(如C++)支持所謂的“多重繼承”,即一個類派生自多個類。對於實現繼承,多重繼承會給生成的代碼增加複雜性,還會帶來一些開銷。因此,C#的設計人員決定不支持類的多重繼承,因爲支持多重繼承會增加複雜性,還會帶來一些開銷。

C#又允許類型派生自多個接口。一個類型可以實現多個接口。這說明,C#類可以派生自另一個類和任意多個接口。更準確地說,因爲System.Object是一個公共的基類,所以每個C#類(除了Object類之外)都有一個基類,還可以有任意多個基接口。

2、結構和類

    結構是值類型,類是引用類型。使用結構的一個限制是結構不支持繼承,但每個結構都自動派生自System.ValueType。不能編碼實現結構的類型層次,但結構可以實現接口。換言之,結構並不支持實現繼承,但支持接口繼承。定義的結構和類可以總結爲:

●結構總是派生自System.ValueType,它們還可以派生自任意多個接口。

●類總是派生自System.Object或用戶選擇的另一個類,它們還可以派生自任意多個接口。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章