![]() |
1
1
我认为这对开发人员来说要么是明确的,要么有助于加强接口结构。我的意思是,假设您有一个用于数据结构类的接口,并且实现了IDataObject。然后,IDataObject实现了ISecurable和ILoggable。您创建的常规类可能只实现IDataObject,但如果IDataObject的创建者稍后更改实现并使其不可移植,会怎么样?这可能会更改代码的功能。因此,为了防止这种情况发生,当您创建从IDataObject继承的类时,您可以明确地说,为了安全起见,您还希望实现ISecurable和ILoggable。 我不知道他们为什么和伊利斯特这样做,但这两个原因是我对为什么最好的猜测。 |
![]() |
2
5
我 相信 只有对象浏览器才能这样显示。我刚试过这个:
将它加载到对象浏览器中会在两个类上显示两个接口。 注意有时候 可以 如果要从另一个实现继承接口,就需要重新声明该接口—它允许您 再实施 接口(如果以前是以显式或非虚拟方式实现的)。我不认为是这样,但值得一提。 不过,一般来说,您肯定不需要指定所有接口,我一般不会这样做。 |
![]() |
3
2
这就够了。声明类:
这意味着您的MyCollectionClass实现了IList、ICollection和IEnumerable。
这是对象浏览器的一个细节,或者基类只是通过指定所有接口实现了集合类。然而,确实没有任何驾驶理由这样做。 |
![]() |
4
2
现在,我想你在问,给
有什么区别:
和
答案是, 绝对没有 . 第二个版本使它的设计对其他程序员来说更加清晰,但两者都将生成相同的代码。 |
![]() |
5
1
为了通过接口访问对象,对象的类定义必须明确定义它实现接口… 例如,我可以有以下内容:
以及以下类别:
现在,狗确实在叫;但是,因为它没有声明它实现了伊尼玛,我 不能 执行以下操作:
要解决此问题,必须将dog的定义更改为:
|
![]() |
Giffyguy · 如何限制在构造向量后调用'resize()'? 2 年前 |
![]() |
vytaute · 返回表类型时Oracle函数中的类型错误 2 年前 |
![]() |
bbgghh · 在scala中连接两个列表时如何处理不匹配的键 2 年前 |
![]() |
dev-chicco · Laravel系列寻找常见物品 2 年前 |
![]() |
Mitch · Laravel-雄辩的单品合并系列 6 年前 |
![]() |
Kieran · 为什么类X可以从集合继承<X> 6 年前 |
![]() |
John · 如何在不返回集合本身的情况下返回集合的数据? 6 年前 |
![]() |
Niklas Mertsch · 在泛型集合中实现移除(对象o) 6 年前 |