Description of what an Interface does?
复制:接口:为什么我不能抓住它们?
关于OOP,您如何描述接口?
我的意思是,子类可以被描述为"has-a",继承可以被描述为"is-a"。成员方法可以是"can do"…
是否有任何方法可以扩展(没有双关语)来描述接口的功能?
谢谢
我认为物体是名词,方法是动词,接口是形容词(当然这个类比过于简单化了,但经常工作得很好)。
示例:接口
我也喜欢费德里科的回答,即界面是"可以做的"。
接口是类支持的一组相关操作。接口中的方法一起描述类可以做什么。
就像名词可以带多个形容词一样,一个类可以实现多个接口,只要它们不冲突。类实现的所有接口的联合是类可以做的事情的总和。
实际上,接口是一组方法签名,没有实现这些方法的代码。只是方法名和参数。根据语言的不同,方法签名还可以包括返回类型和引发的异常。
接口由方法组成,但不包括数据成员。
顺便说一句,我不会说子类是has-a。我的理解是子类和继承是一样的,所以它们都是is-a。而has-a被称为聚合或组合。
组合是一个对象拥有另一个对象的地方。销毁外部对象也会销毁内部对象。例如:大学由系组成。关闭大学,各系就消失了。
聚合是指一个对象包含另一个对象,但不拥有它。销毁外部对象不会销毁内部对象。大学聘用教授,但关闭大学并不会杀死教授。
接口是具有所有纯虚拟成员的抽象基类。
所以看看你的has-a/is-a,它应该类似于你将要应用于抽象基类的任何东西。
接口通常存在于不完全支持多重继承的语言中,作为一种更安全地提供某些相同好处的方法。
正如您对方法的描述一样,我也将接口描述为"可以做"。接口是一个类似"所有实现我的类都可以做这些事情"的契约。
ACTS- AS-A
乔尔,这不像是一个界面。它在某种程度上类似于抽象基类,但它没有方法和属性的实现。
这很好地概括了接口是什么。
http://www.c-sharpcorner.com/uploadfile/rmcochran/csharp_interrfaces03052006095933am/csharp_interrfaces.aspx?物品ID=CD6A6952-530A-4250-A6D7-54717EF3B345