使用接口继承还是直接实现所有接口?

Joh*_*n K 1 .net c# inheritance interface

我不一定看到继承接口的接口带来了巨大的好处.

考虑以下三个接口,第三个继承其他两个接口

interface IOne {
}

interface ITwo {
}

// interface inheritance
interface IAll : IOne, ITwo {
}
Run Code Online (Sandbox Code Playgroud)

是最好的

class C : IOne, ITwo { ... }
Run Code Online (Sandbox Code Playgroud)

要么

class C : IAll { ... }
Run Code Online (Sandbox Code Playgroud)

如果后者可能是有益的,那么为什么不创建IAll来拥有IOne和ITwo的所有方法而不继承它们呢?毕竟它是一个界面.

接口继承是否实用,不仅有用吗?

Eri*_*ert 6

考虑接口"继承"的好方法是完全忘记它被称为"继承".毕竟,"基础"界面显然没有为"派生"界面提供任何功能 ; 它所贡献的只是承诺会有某些成员.

类派生关系通常意味着"is-a-kind-of"关系.NullReferenceException是一种异常.界面派生关系并不意味着完全没有意义 - 说这IEnumerable<T>是一种非常有意义的IDisposable.

相反,接口继承意味着"实现的类型也IEnumerable<T>需要实现IDisposable.也就是说,接口继承并不意味着"这是一种",而是"每次执行此操作都需要实现".

这会让它更引人注目吗?