2014-03-30 88 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