C 中介面多重繼承的注意事項

2021-05-07 12:55:25 字數 792 閱讀 8221

經常,乙個類會實現多個介面,比如使用者的乙個控制項繼承自"iedit"和"icombo",每個介面無疑都有乙個paint方法來供子類實現如何畫他們,但是多重繼承就會出現問題,預設情況下,c#止允許實現paint方法。

現在有乙個比較鑽牛角尖的問題,如何在派生的類裡面實現這兩個介面的相同名稱的方法呢?

1。要麼只實現乙個方法,否則函式重明,就會存在二義性

比如:void iface1.print();

void iface2.print();

(2)。對於不通名稱的方法,事項是前面必須冠以"public"識別符號。

以上兩個規則缺一不可,否則會收到編譯錯誤。

3。建立類例項時,如何引用不通介面的相同方法呢?方法如下:

如果呼叫那個介面的實現,則必須將示例強制轉換為相應介面型別。

比如:facetoface face;

((iface1)face).print();或者

((iface2)face).print();

完整的例子見下面

using system;

namespace testinte***ce

inte***ce iface2

class facetoface : iface1,iface2

public void hello()

#endregion

#region iface2 成員

public void goodbye()

void iface2.print()

#endregion

}class class1}}

C 中介面多重繼承的注意事項

經常,乙個類會實現多個介面,比如使用者的乙個控制項繼承自 iedit 和 icombo 每個介面無疑都有乙個paint方法來供子類實現如何畫他們,但是多重繼承就會出現問題,預設情況下,c 止允許實現paint方法。現在有乙個比較鑽牛角尖的問題,如何在派生的類裡面實現這兩個介面的相同名稱的方法呢?通過...

C 中介面多重繼承的注意事項

經常,乙個類會實現多個介面,比如使用者的乙個控制項繼承自 iedit 和 icombo 每個介面無疑都有乙個paint方法來供子類實現如何畫他們,但是多重繼承就會出現問題,預設情況下,c 止允許實現paint方法。現在有乙個比較鑽牛角尖的問題,如何在派生的類裡面實現這兩個介面的相同名稱的方法呢?通過...

Java繼承注意事項

錯誤寫法 class computer1 class computer2 如果想同時繼承兩個父類怎麼辦呢?class computer1 class computer2 extends computer1 class pad extends computer2 class computer1 cla...