【问题标题】:Implementing interface correct terminology实现接口正确的术语
【发布时间】:2011-06-22 10:20:51
【问题描述】:

如果我有一个以 基类 类型作为参数的方法,我可以将扩展该基类的类的每个对象传递给它,因为 派生类也是一个基类

因此,如果我有一个方法,其参数是 Interface 类型,我可以将实现该接口的类的每个对象传递给它,因为 该类也是一个接口 或者它可以实现的所有接口。

这是用于界面的正确术语吗?

谢谢。

【问题讨论】:

  • 一个类不是接口,它实现一个接口
  • @Felice:继承的意思是“是”,所以你可以同时说。
  • @schoetbi,在我看来,实现接口不是继承。
  • @schoetbi:关键部分是实现接口的类不一定是可以由第三类实现的接口本身。继承不等于实现。
  • @George:我同意没有人这么说,但是如果接口的实现不会改变接口的语义,则适用 Liskov 替换原则 (en.wikipedia.org/wiki/Liskov_substitution_principle) 因此我认为可以这么说它是一种交互,因为它确实是一种“是”关系。但是不管他说的是继承还是实现,每个人都会明白他的意思。更常见的是我同意的“实现”。

标签: c# java c++ oop


【解决方案1】:

正确的术语不会是

那个类也是一个接口

但是

该类的行为完全符合接口承诺

改为。

使用基类,就像“我可以与任何勤奋的人一起工作”。有了接口,就好像“我可以用任何努力工作。”

【讨论】:

  • 是的,这是非常正确的语言。 “该类的行为完全符合接口承诺。”
  • 我不同意使用“行为”这个词。相同接口的两个实现表现不同是可以的。绑定术语是接口的实现与某种通信协议兼容。
【解决方案2】:

that class is also an interface我不同意这句话。该类不是接口,该类只是实现了该接口。在我看来,that class is also an interface 这个说法是错误的

【讨论】:

    【解决方案3】:

    更精确的表述是“任何 instance ofD 派生自基类 B 也是 instance of B”,和“任何实现I 接口的类D实例也可以通过I引用”。这种表述方式明确区分了类、接口和实例。

    【讨论】:

      【解决方案4】:

      那个类也是一个接口

      我不会这样表达(主要是因为类不是接口)。我会这样表达:

      • ..该类提供接口的API..
      • .. 该类提供接口定义的行为
      • ..那个类实现了接口..

      【讨论】:

        猜你喜欢
        • 2022-01-23
        • 2017-12-13
        • 1970-01-01
        • 2011-10-10
        • 2015-07-09
        • 2017-08-19
        • 2016-03-27
        • 2016-02-15
        • 1970-01-01
        相关资源
        最近更新 更多