为什么"设计模式"说'两个相同类型的对象只需要共享其部分接口'?

Val*_*zub 8 oop design-patterns

GoF书中的第13页有一个声明:

Two objects of the same type need only share parts of their interfaces.
Run Code Online (Sandbox Code Playgroud)

我不确定我理解这句话.

编辑:完整的引用可能确实有助于理解这一点

类型是用于表示特定接口的名称.如果对象接受对名为"Window"的接口中定义的操作的所有请求,则将对象称为具有"Window"类型.对象可以有许多类型,并且广泛不同的对象可以共享类型.对象界面的一部分可以用一种类型表征,而其他部分用其他类型表征.两个相同类型的对象只需要共享其接口的一部分.接口可以包含其他接口作为子集.

Eri*_*arr 8

在他们的语言中,对象接口是对象的整个公共契约(不要认为语言实现在这里).

由对象定义的所有签名集称为对象的接口 .

是更像是你会觉得作为一个声明接口....

类型是用于表示一个特定的接口的名称.

想像:

public class Foo : IBar, IBaz {}

public class Fuz : IBar, IBuz {}
Run Code Online (Sandbox Code Playgroud)

Foo和Fuz都是IBar"类型",但它们只共享各自接口的那个方面.