C# 实现正确的接口术语

C# 实现正确的接口术语,c#,java,c++,oop,C#,Java,C++,Oop,如果我有一个方法,它的参数是基类类型,我可以将扩展该基类的类的每个对象传递给它,因为派生类也是基类 因此,如果我有一个方法,它的参数是接口类型,我可以将实现该接口的类的每个对象传递给它,因为该类也是一个接口或它可以实现的所有接口 这是用于接口的正确术语吗 谢谢。那个类也是一个接口我不同意这句话。那个类不是一个接口,那个类只是实现了那个接口。在我看来,这个声明认为类也是一个接口是错误的正确的术语是不正确的 该类也是一个接口 但是 该类可以完全按照接口承诺的方式运行 相反 对于基类,它就像“我可以与

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

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

这是用于接口的正确术语吗


谢谢。

那个类也是一个接口
我不同意这句话。那个类不是一个接口,那个类只是实现了那个接口。在我看来,这个声明
认为类也是一个接口
是错误的

正确的术语是不正确的

该类也是一个接口

但是

该类可以完全按照接口承诺的方式运行

相反


对于基类,它就像“我可以与任何辛勤工作的人一起工作”。对于接口,它就像“我可以与任何辛勤工作的人一起工作。”

更精确的公式是“从基类
B
派生的类
D
的任何实例也是
B
的实例”,并且“实现接口
I
的类
D
的任何实例也可以通过
I
引用”。这种措辞方式明确区分了类、接口和实例

该类也是一个接口

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

  • …该类提供接口的API
  • …该类提供接口定义的行为
  • …该类实现接口

类不是接口,它实现了interface@Felice:继承意味着“是一个“所以你可以说两者兼而有之。@schoetbi,在我看来,实现接口不是继承。@schoetbi:关键是实现接口的类本身不一定是可以由第三个类实现的接口。继承与实现不同。@George:我同意没有人这么说,但是如果接口的实现没有改变接口的语义,那么Liskov替换原则将被应用(),因此我认为可以说它是一种相互作用,因为它确实是一种“是”关系。但不管他说的是继承还是实现,每个人都会理解他的意思。更常见的是“实现”,我同意。是的,这是非常正确的语言使用。“那个类的行为完全符合接口承诺。”我不同意使用“行为”这个词。同一接口的两个实现可以表现出不同的行为。绑定术语是指接口的实现与特定的通信协议兼容。