Abstraction
What is abstraction?
Abstraction (from the Latin abs
, meaning away from
and trahere
, meaning to draw
) is the process of taking away or removing characteristics from something in order to reduce it to a set of essential characteristics.
Pablo Picasso and Abstraction
In 1945, Pablo Picasso produced a series of 12 lithographs entitled The Bull, in which he began with a realistic drawing of the animal, progressing through gradual removal of superfluous
elements of the creature to reach a simple linear abstraction. This piece, showing the stages of abstraction, is in many ways emblematic of Picasso’s approach to the abstract; a daring experiment in reduction
and non-conventional forms of representation, but one that never completely abandons the real.

Abstraction in programming
A simplification of something much more complicated that is going on under the covers.
The history of computer programming has been a story of increasingly sophisticated abstractions that let the programmer solve problems without worrying too much about how the underlying machine actually works.
That makes programs easier to write and perhaps more portable. But for many programs, access to the hardware, and precise control of how the program is executed, are more important.
As it turns out, a lot of computer programming consists of building abstractions.
Through the process of abstraction, a programmer hides all but the relevant data about an object in order to reduce complexity and increase efficiency
. Abstraction is related to both encapsulation and data hiding.
In the same way that abstraction sometimes works in art, the object that remains is a representation of the original, with unwanted detail omitted
. The resulting object itself can be referred to as an abstraction, meaning a named entity made up of selected attributes and behavior specific to a particular usage of the originating entity
.
Abstraction in OOP
Exposing only essential information about an object to the outside world, hiding the complex implementation details.
It simplifies the interaction with objects by providing a simplified view, making it easier to understand and use them.
For example, when using a car, you interact with the steering wheel, pedals, and gear shift, without needing to know the intricate details of the engine’s operation.