【发布时间】:2019-08-04 18:20:26
【问题描述】:
假设我们有两个接口:
interface Ilayer1 : Ilayer2
{
string testMethod1();
}
interface Ilayer2
{
string testMethod2();
}
class A: Ilayer1
{
...//implement all methods of Ilayer 1 and Ilayer2
}
所以我的问题是:
- 接口继承的目的是什么?既然他们可以有不同的方法签名来实现,那么
Ilayer1通过继承Ilayer2得到了什么? - 我们可以简单的去掉
Ilayer1和Ilayer2之间的继承关系,让A类实现两个接口为class A: Ilayer1, Ilayer2
【问题讨论】:
-
IPrimate : IMammal : IVertebrate例如。其中每一个都为其继承的内容添加了其他人可能没有的特定特征。例如,您也可以使用IFish : IVertebrate,因为鱼类和哺乳动物有一些不同的独立属性。 -
所以你可以在
Ilayer1的每个实现者中一遍又一遍地复制Ilayer2? -
如果
ILayer1为ILayer2添加了功能,或者ILayer2是ILayer1也使用的东西(如IComparable),那么它就很有意义了。现实世界的例子会更明显。
标签: c# oop inheritance interface