程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#中實現多繼承的方式:混合+接口

C#中實現多繼承的方式:混合+接口

編輯:關於C#

有如下結構的代碼:

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

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

我們只有走變通的道路:經過我的實踐,使用混合+接口的方式。可以比較好的實現多繼承。

我們還是直接來看圖:

具體的解決步驟是:

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

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

讓ChildA和ChildB實現IBaseCAction接口,並分別實現ApplyEditable的不同代碼。

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

本文配套源碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved