Home » Abstraction (OOP programming)

Abstraction (OOP programming)

1970
  • Barbara Liskov
Software engineer coding abstract classes in a modern IDE environment.

Abstraction in OOP is the concept of hiding complex implementation details and showing only the essential features of the object. It focuses on what an object does instead of how it does it. This is achieved through abstract classes and interfaces, which define a blueprint for other classes without providing a complete implementation, simplifying complex systems.

Abstraction is a process of managing complexity. In programming, it involves creating a simplified representation of a system or component. In OOP, this is primarily done using abstract classes and interfaces. An abstract class is a class that cannot be instantiated on its own and is meant to be subclassed. It can contain abstract methods (methods without a body) that subclasses must implement. An interface is a similar concept but is purely abstract; it can only define method signatures, not implementations. A class can then ‘implement’ an interface, promising to provide the functionality defined in it.

This allows programmers to define a common contract or API that multiple different classes can adhere to. For example, an interface ‘Storable’ could define ‘save()’ and ‘load()’ methods. Different classes like ‘Document’, ‘Image’, and ‘UserSettings’ could all implement the ‘Storable’ interface, each providing its own logic for saving and loading. Code that works with ‘Storable’ objects doesn’t need to know the specific type of object it’s dealing with; it only needs to know that it can call ‘save()’ and ‘load()’. This decouples the client code from the specific implementations, making the system more modular, flexible, and easier to understand at a high level.

UNESCO Nomenclature: 1203
– Computer science

Type

Abstract System

Disruption

Foundational

Usage

Widespread Use

Precursors

  • mathematical abstraction
  • the concept of subroutines and functions as a form of procedural abstraction
  • abstract data types (adt) theory
  • the need to manage complexity in large-scale engineering projects

Applications

  • database access layers (DALs) that hide the specific SQL queries
  • device drivers abstracting hardware complexity from the operating system
  • graphical user interface (GUI) libraries providing high-level widgets
  • network protocols like HTTP abstracting the underlying TCP/IP communication
  • the standard template library (stl) in C++

Patents:

NA

Potential Innovations Ideas

Professionals (100% free) Membership Required

You must be a Professionals (100% free) member to access this content.

Join Now

Already a member? Log in here
Related to: abstraction, interface, abstract class, API, information hiding, complexity, OOP, contract, decoupling, modularity.

Leave a Reply

Your email address will not be published. Required fields are marked *

AVAILABLE FOR NEW CHALLENGES
Mechanical Engineer, Project, Process Engineering or R&D Manager
Effective product development

Available for a new challenge on short notice.
Contact me on LinkedIn
Plastic metal electronics integration, Design-to-cost, GMP, Ergonomics, Medium to high-volume devices & consumables, Lean Manufacturing, Regulated industries, CE & FDA, CAD, Solidworks, Lean Sigma Black Belt, medical ISO 13485

We are looking for a new sponsor

 

Your company or institution is into technique, science or research ?
> send us a message <

Receive all new articles
Free, no spam, email not distributed nor resold

or you can get your full membership -for free- to access all restricted content >here<

Historical Context

(if date is unknown or not relevant, e.g. "fluid mechanics", a rounded estimation of its notable emergence is provided)

Related Invention, Innovation & Technical Principles

Scroll to Top

You May Also Like