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的所有方法而不继承它们呢?毕竟它是一个界面.
接口继承是否实用,不仅有用吗?
考虑接口"继承"的好方法是完全忘记它被称为"继承".毕竟,"基础"界面显然没有为"派生"界面提供任何功能 ; 它所贡献的只是承诺会有某些成员.
类派生关系通常意味着"is-a-kind-of"关系.NullReferenceException是一种异常.界面派生关系并不意味着完全没有意义 - 说这IEnumerable<T>
是一种非常有意义的IDisposable
.
相反,接口继承意味着"实现的类型也IEnumerable<T>
需要实现IDisposable
.也就是说,接口继承并不意味着"这是一种",而是"每次执行此操作都需要实现".
这会让它更引人注目吗?