In a loose sense, Object Oriented Programming is based on the idea that one deals with a community of communicating objects. From a more local point of view, OO programming means that each object can send, receive and handle a specific set of messages. Messages are handled by so-called methods which do look like ordinary procedures, but can only alter the internal state of an object or send messages to objects. Each Object has therefore a single identity.
Generic objects are almost the same as their instances.
Inheritance is single, meaning MOO objects can only inherit from a single Generic Object.