Period during which an object or variable exists.

Value capable of representing different types or forms.

Ability to use different types through a common interface.

Accessible from outside its defining component.

Association between a name and an entity.

Same method name with different parameters.

Accessible only within its defining component.

Association resolved before runtime.

Subclass provides a new implementation of a method.

Accessible to a class and permitted descendants.