偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C#中實現(xiàn)多繼承的方式:混合+接口

開發(fā) 后端
本文作者朱永光先生,微軟MVP、.NET技術(shù)的講師。這里將為大家講解如何在C#中實現(xiàn)多繼承的方式,途徑就是使用混合+接口。

有如下結(jié)構(gòu)的代碼:

image

其中Parent的ApplyEditable是一個Virtual方法,Child要對其進行各自不同的實現(xiàn),即重寫ApplyEditable方法。

上述代碼中,很明顯ParentA和ParentB有重復代碼。但是由于C#不支持多繼承,所以無法使用多繼承的方式把這些重復代碼封裝起來。

我們只有走變通的道路:經(jīng)過我的實踐,使用混合+接口的方式??梢员容^好的實現(xiàn)多繼承。

我們還是直接來看圖:

image

具體的解決步驟是:

1.把之前在ParentA和ParentB中公共的代碼封裝到BaseC中,并作為Parent的一個屬性。

2.把需要重寫的方法ApplyEditable定義到一個接口IBaseCAction中。(實際上,如果只有一個方法需要重寫的話,可以不用定義接口,直接在BaseC中定義一個Action的委托變量就可以了。當然定義接口更方便支持多個重寫方法。)

3.讓ChildA和ChildB實現(xiàn)IBaseCAction接口,并分別實現(xiàn)ApplyEditable的不同代碼。

4.在Child類的構(gòu)造器中,把自己傳給BaseC的實例化,即this.BaseC = new BaseC(this);

我就不貼代碼了,完整的源代碼下載地址為:http://cid-f73516baeac50992.skydrive.live.com/self.aspx/SharedCode/MultiDerived.zip

【編輯推薦】

  1. C#中的Adapter設計模式淺析
  2. VB.NET和C#逐層橫向?qū)Ρ?/FONT>
  3. C#3.0中自動屬性和對象初始化器
責任編輯:彭凡 來源: cnblogs
相關(guān)推薦

2009-06-16 10:20:05

多繼承C#

2009-08-24 10:31:37

C#接口繼承

2009-09-01 18:29:10

C#繼承C#多態(tài)

2009-09-24 15:20:54

C#接口定義

2024-12-20 09:48:47

C#Python代碼

2009-08-31 15:55:17

C#實現(xiàn)Strateg

2009-08-25 17:55:52

C#實現(xiàn)Strateg

2009-07-31 18:28:46

實現(xiàn)C#顯示圖像

2011-07-14 11:08:30

C#繼承

2009-08-13 18:15:06

C#繼承構(gòu)造函數(shù)

2009-08-31 18:01:41

C#接口事件

2009-08-31 17:16:12

C#實現(xiàn)接口

2009-08-24 10:06:31

C#接口成員

2024-10-09 07:59:10

C#接口信息

2009-02-05 15:32:23

接口委托

2024-09-13 08:27:00

2009-05-26 16:33:48

PythonC#Run As

2009-09-04 13:22:31

C#實現(xiàn)多個接口

2009-09-01 18:29:24

C#實現(xiàn)多個接口

2009-08-24 10:47:45

C#接口重實現(xiàn)
點贊
收藏

51CTO技術(shù)棧公眾號