0
爲什麼多類繼承鑽石問題和多接口繼承不成問題?爲什麼多個類繼承鑽石問題和多接口繼承沒有?
爲什麼多類繼承鑽石問題和多接口繼承不成問題?爲什麼多個類繼承鑽石問題和多接口繼承沒有?
因爲在多個類繼承中,您可能會繼承相同簽名的兩個衝突實現。
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