c# - C# 中的接口(interface)是否可能出现菱形问题?

标签 c# inheritance interface abstract-class

下面的代码是否存在架构问题?就是所谓的diamond problem可能与接口(interface)或类似问题有关?

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# 中是不可能的。但是关于接口(interface)我没有找到资料。

最佳答案

不,用 C# 不可能产生菱形问题,因为您只能从一个类继承。接口(interface)不是继承的,而是实现的。因此,编译器和编码器的实际问题永远不会发生,即拥有一个方法的两个实现并且不知道为特定类选择哪个。

关于c# - C# 中的接口(interface)是否可能出现菱形问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52697629/

相关文章:

c# - 将 varbinary 从 sql 加载或转换为文本框文本?

c# - 为什么我不能以这种方式实现接口(interface)?

c# - 如何对实例变量使用惰性

java - 继承:有没有办法发现调用方法的类?

java - 抽象方法和带有 UnsupportedException 的方法哪个更好?

c++ - 尽管覆盖仍编译错误

android - 找不到 JNI 方法

c# - 将 List<int?> 转换为 List<int> 的任何简单方法

java - Java中接口(interface)调用的优化策略

java - 为什么java中的Stack类不会在 'add'方法上抛出UnsupportedOperationException?