Object grouping multiple function parameters.

Process or thread performing background work.

Resolving method or reference behavior at runtime.

Reusable software structure for applications.

Specific object created from a class.

Linking libraries while a program runs.

Automatic reclamation of unused memory.

Defined contract for software interaction.

Bundling data and behavior behind an interface.

Writing code applicable to multiple types.