On page 13 in the GoF book there is a statement:
Two objects of the same type need only share parts of their interfaces.
I am not sure I understand this sentence.
EDIT: full quote might indeed help to understand that
A type is a name used to denote a particular interface. We speak of an
object as having the type “Window” if it accepts all requests for the
operations defined in the interface named “Window.” An object may have
many types, and widely different objects can share a type. Part of an
object’s interface may be characterized by one type, and other parts
by other types. Two objects of the same type need only share parts of
their interfaces. Interfaces can contain other interfaces as subsets.
In their language, an objects interface is the the entire public contract of the object (Don’t think language implementation here).
A type is more like what you would think of as a declared interface….
Imagine:
A Foo and a Fuz are both IBar “types” but they only share that aspect of their respective interfaces.