下面的代码中有架构问题吗?所谓的金刚石问题可以与接口或类似的问题吗?
interface IComponent
{
void DoStuff();
}
interface ITitledComponent : IComponent
{
string Title { get; }
}
abstract class ComponentBase : IComponent
{
public void DoStuff()
{
throw new NotImplementedException();
}
}
class MyComponent : ComponentBase, ITitledComponent
{
public string Title => throw new NotImplementedException();
}当然,带类的钻石继承是一个错误的决定,这在C#中是不可能的。但是关于接口,我没有找到任何信息。
发布于 2018-10-08 08:26:20
不,C#不可能产生钻石问题,因为您只能从一个类继承。接口不是继承的,而是实现的。因此,编译器和编码器的实际问题,有两个方法的实现,而不知道选择哪一个特定的类是不可能发生的。
https://stackoverflow.com/questions/52697629
复制相似问题