接口的功能描述?

时间:2008-12-26 21:00:41

标签: oop interface

重复:Interfaces: Why can't I seem to grasp them?

关于OOP,您如何描述界面?

我的意思是,子分类可以描述为“Has-A”,继承可以是“Is-A”。 成员方法可以是“Can-Do”..

有没有什么方法可以扩展(没有双关语)来描述接口的作用?

由于

5 个答案:

答案 0 :(得分:6)

我将对象视为名词,将方法视为动词,将接口视为形容词(当然这个类比过于简单,但经常有效好吧)。

示例:接口Serializable的作用类似于形容词,因为它将一些特性应用于实现该接口的对象,但不会更改该对象的内容。我们可以说,“这是一个可序列化的对象。”但是我们没有说,“这个对象可序列化的”,我们也不说,“这个对象有一个可序列化的。”

我也很喜欢费德里科的answer接口是“CAN-DO”。

接口是该类支持的一组相关操作。接口中的方法一起描述了类可以做什么。

就像名词可以采用多个形容词一样,一个类可以实现多个接口,只要它们不冲突。类实现的所有接口的并集是类可以执行的操作的总和。

实际上,接口是一组方法签名,没有实现这些方法的代码。只是方法名称和参数。根据语言的不同,方法签名还可能包括返回类型和抛出的异常。

接口由方法组成,但不包含数据成员。

顺便说一句,我不会说分类是HAS-A。我的理解是子类与继承相同,所以这些都是IS-A。而HAS-A被称为聚合或组合。

  • 合成是对象拥有其他对象的位置。摧毁外部物体也会破坏内部物体。示例:大学组成部门。关闭大学,各部门消失。

  • 聚合是对象包含其他对象的位置,但不拥有该对象。销毁外部对象不会破坏内部对象。示例:大学雇用教授,但关闭大学不会杀死教授。

答案 1 :(得分:2)

接口是一个抽象基类,包含所有纯虚拟成员。

所以看看你的Has-A / Is-A,它应该类似于你申请抽象基类的任何东西。

接口通常存在于不完全支持多重继承的语言中,以便更安全地提供一些相同的好处。

答案 2 :(得分:1)

行为-AS-A

答案 3 :(得分:1)

正如您对方法的描述一样,我还将接口描述为“Can-Do”。接口是一个契约,就像“所有实现我的类,可以做这些事情”。

答案 4 :(得分:0)

乔尔认为接口不是什么特权。它在某种程度上就像一个抽象基类,但它没有实现方法和属性。

这几乎总结了界面是什么。

http://www.c-sharpcorner.com/UploadFile/rmcochran/csharp_interrfaces03052006095933AM/csharp_interrfaces.aspx?ArticleID=cd6a6952-530a-4250-a6d7-54717ef3b345