Objects have Attributes, which can contain any Prolog term. Objects have Services invoked by message passing.
Classes can be part of an IS-A hierarchy.
A Child class can add new Services and Attributes or redefine inherited Services. Object and Class behaviour can be modified at run time. An Object can change it Class and a Class can even change its place in the hierarchy. Also, the code of Services can be dynamically changed. The Class is defined, instantiated and used in the 'main' predicate.