Arguments are passed by reference. Object based languages allow dynamic allocation. However, all Prolog programs are stored as data structures which can be represented as trees, subprograms or subtrees are therefore handled in the same fashion as full-sized programs. The only difference in the level of data in relation to the entire program. Everything is an object with specific characteristics and behaviors.
Objects use messages to communicate to each other.
The only thing that an object knows about another object is the other object' s interface. Private data members and methods are hidden. Objects can inherit the characteristics and behaviors from parent objects. This violates the principles of information hiding and may lead to unintended side-effects. In comparison Prolog has a certain type of object relation called a selector which allows the user to access certain components of a family of objects with the full details of it.