There are two key types of abstraction:

These abstraction makes your code easier to read, understand, modify, and reuse.


Abstraction by Parameterization

Abstraction by Specification


Abstraction and Decomposition

Data Abstraction