我认为对象是名词,方法是动词,接口是形容词(当然这个类比过于简单,但经常运作得很好).
示例:界面的Serializable
工作方式类似于形容词,因为它将一些特性应用于实现该界面的对象,但不会更改该对象的内容.我们可以说,"这是一个可序列化的对象." 但我们并没有说,"这个对象是可序列化的",我们也不说,"这个对象具有可序列化的".
我也很喜欢Federico的答案,即界面是"CAN-DO".
接口是该类支持的一组相关操作.接口中的方法一起描述了类可以做什么.
就像名词可以采用多个形容词一样,一个类可以实现多个接口,只要它们不冲突即可.类实现的所有接口的并集是类可以执行的操作的总和.
实际上,接口是一组方法签名,没有代码实现这些方法.只是方法名称和参数.根据语言,方法签名还可以包括返回类型和抛出的异常.
接口由方法组成,但不包含数据成员.
顺便说一下,我不会说子分类是HAS-A.我的理解是子类与继承相同,所以这些都是IS-A.而HAS-A被称为聚合或组合.
组合是对象拥有另一个对象的位置.摧毁外部物体也会破坏内部物体.示例:大学组成部门.关闭大学,各部门消失.
聚合是对象包含另一个对象但不拥有它的位置.销毁外部对象不会破坏内部对象.示例:大学雇用教授,但关闭大学不会杀死教授.