Ability to use one interface with different implementations.

Building objects from other objects.

Member accessible to class and descendants.

Graphical interface using visual controls.

Hiding unnecessary implementation details.

Weak ownership relationship between objects.

External function granted class access.

Text-based user interface.

Function associated with an object or class.

General relationship between objects.