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
"Class" and "Object" represent two different things; they are related, but what they represent IS different, quite strongly.
The best way to describe this is to look at Static. A class can have static members, which are completely separate from any INSTANCE of that class. Objects of that class may or may not use those static members; but the instance of the object of that class is completely separate from any static uses of that class (or should be, at the very least).
Or think of the singleton pattern. Storing an instance of the class object in a static class accessor is a common practice, and shows the difference. You refer to the class static accessor to get the object instance of a singleton class; if the class static member does not have an object instance to refer to, the class creates the instance of the object.
Put another way; an object is an instance of a class; but a class can be more than just a template from which objects are instantiated. Static members of classes have a representation in memory that is completely independent of object instances of those classes.