Is contract to interface as object is to class?
What is the need to differentiate identical things like this, from the code to the executing code? I sort of get the
Actually, an interface is a contract, when an object is an instance of a class - they are different things that don't have too much in common.
The interface just provides a facade for objects, or a warranty for the caller that the object can do some operation, even without knowing it's implementation.
For example, you can have two classes implementing the same interface/contract, but do totaly different things (even though the meaning of doing them may be the same).
Take the IDisposable interface for example: Each object can release the resources that it uses, but it can do it in many different ways, it can choose not to release anything. It's the object's choice.
At least this would be the POV in .NET