接口 - 仍然试图理解它们

时间:2012-10-04 12:25:12

标签: oop language-agnostic interface

我认为界面有三个主要好处我是否正确。

  1. 必须创建的蓝图(我也听过其他人将其称为合同)。
  2. 多态性。
  3. 与继承(IMO有许多相似之处)不同,您可以拥有许多接口
  4. 是否还有其他加分或减号,是否有人不同意我的3分?

3 个答案:

答案 0 :(得分:1)

“蓝图”比喻对于类而不是接口更有效,但“契约”比喻非常准确。接口指定了其他类在公共方法方面可以期望的内容,而没有说明底层实现的任何内容。在类之间的继承往往由 is-a 关系组成的情况下,接口可以被认为是作为一个关系,但我不认为后一个术语是常用。

答案 1 :(得分:1)

我想补充一点,接口的使用在一定程度上创建了自我记录代码。例如,您的类实现的接口描述了该类支持的功能。因此,您最终得到的代码如下:

if (someClass is ISearchable)
{
   someClass.Search();
}

答案 2 :(得分:1)

具有相同接口的两个对象不需要以其他方式相关。

所以你可以拥有   - 花   - 卡车   - 恐龙

都具有相同的界面   - IColor

即使它们是完全不同的对象。