2014-03-30 114 views

回答

3

因爲在多個類繼承中,您可能會繼承相同簽名的兩個衝突實現。

class Base1 
{ 
    public void Foo() 
    { 
     Console.WriteLine("Base1"); 
    } 
} 

class Base2 
{ 
    public void Foo() 
    { 
     Console.WriteLine("Base2"); 
    } 
} 

class Drived : Base1, Base2 
{ 
} 

那麼,Drived應該導出哪個實現呢?
鑽石問題只是上述的具體情況。

現在,接口不執行任何東西 - 所以不能有任何衝突的實施,並在C#中,你可以給不同的實現方式,爲每個接口,即使他們有相同的方法的簽名,與explicit interface implementation