In Object-oriented programming, Association defines a relationship between classes of objects which allows one object instance to cause another to perform an action on its behalf.

In generic terms the causation is usually called "sending a message" to the controlled object. Concrete implementation usually requires the requesting object to invoke a method or member function using a reference or pointer to the memory location of the controlled object.

See also: Aggregation, Inheritance.