
Interface
The agreed meeting point where two parts of a system exchange requests and answers.

Hiding complex detail behind a simple, predictable way of asking for things.
Hiding complex detail behind a simple, predictable way of asking for things.
Abstraction is the art of presenting a clean surface over messy detail. When you ask a system to save a file, you do not think about where on a physical disc each fragment lands. That complexity is hidden behind a simple request, and the simplicity is no accident; it is carefully built.
Drivers are a powerful form of abstraction. They let the rest of a system treat wildly different components as if they were all the same kind of thing. A program can ask to store some data without ever knowing what sort of part will hold it, because the driver presents a familiar surface over an unfamiliar device.
Layers of abstraction stack on top of one another, each hiding the layer below. This is what lets a person write a program without understanding electronics, and use a program without understanding code. Every layer keeps a promise to the one above it and quietly manages the one below.
The danger of abstraction is forgetting that the hidden detail is still there. A leak in a lower layer can surface as a puzzle higher up. Good design keeps its promises faithfully, so the simple surface stays trustworthy and the complexity beneath stays politely out of view.
In practice, consider driving a car. You turn a wheel and press a pedal, and the vehicle responds, even though an intricate machine is translating those gestures into motion. You do not need to understand the engine to steer; the controls are an abstraction that hides the complexity and lets you focus on the road.
We use only essential cookies to keep this educational site working. See our Cookie Notice and Privacy Policy.