There are two different relations in class-based OO: instanciation and inheritance.
Instanciation is the relation between an object and its class, the new
keyword, etc. Usually it's implemented by a pointer in the low-level representation of any object. In Smalltalk, anObject class
traverses this pointer; it also happens that classes are also objects, and classes of classes are called metaclasses, but this is the same relation as with instances.
Inheritance is a relation between classes. You can go from a class to its superclass by doing aClass superclass
, and keep doing so until you get to the class Object
. In Smalltalk, the superclass pointer is just an instance variable defined on any class, and the superclass
message is a normal accessor.