关于面向对象编程,你如何描述接口?
我的意思是,子类化可以描述为“有一个”,继承可以描述为“是一个”。成员方法可以描述为“能做什么”。
是否有任何方式可以扩展(无意冒犯)以描述接口的功能?
接口可以被描述为一种规范或者契约,它定义了一个类应该具有哪些方法和属性,但并不实现这些方法和属性。通过实现接口,类可以遵循这个规范并提供自己的实现方式。
Serializable
的作用类似于形容词,它为实现该接口的对象应用一些特征,但并不改变该对象本身。我们可以说,“这是一个可序列化的对象”。但我们不会说,“这个对象是一个可序列化的”,也不会说,“这个对象有一个可序列化的”。接口是一个拥有所有纯虚成员的抽象基类。
因此,从你的Has-A/Is-A角度来看,它应该类似于任何你将应用于抽象基类的东西。
接口通常存在于不完全支持多重继承的语言中,以更安全地提供一些相同的好处。
Acts-As-A.
Joel,那并不是接口的确切定义。它有点像抽象基类,但没有方法和属性的实现。
这基本上概括了接口的含义。