In your language, the object interface is the entire public contract of the object (do not think about implementing the language here).
The set of all signatures defined by an object is called an interface. to the object.
The type is more like what you consider a declared interface ....
A type is the name used to indicate a specific interface.
Imagine:
public class Foo : IBar, IBaz {} public class Fuz : IBar, IBuz {}
A Foo and Fuz are both types of IBar, but they only share this aspect of their respective interfaces.
source share