經常,乙個類會實現多個介面,比如使用者的乙個控制項繼承自"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...