Difficulty: Easy
Correct Answer: Correct
Explanation:
Introduction / Context:
Abstraction is a foundational idea in computer science, software engineering, and data modeling. It allows us to focus on essential properties while hiding inessential detail so we can reason, design, and implement effectively.
Given Data / Assumptions:
Concept / Approach:
An abstraction is a model that emphasizes relevant characteristics and suppresses the rest. Generalization is one common form of abstraction—e.g., modeling “Vehicle” instead of separate “Car,” “Truck,” “Bike.” In databases, we abstract entities and relationships; in APIs, we expose interfaces not implementations; in algorithms, we define operations without committing to representations.
Step-by-Step Solution:
Identify a concrete domain (e.g., payments) and find essential properties (amount, currency, status).Define an abstract type or interface capturing those properties and behaviors.Hide implementation details (storage, network, vendors) behind the abstraction, enabling substitution and evolution.
Verification / Alternative check:
Design patterns, type hierarchies, and schema normalization all leverage abstraction to reduce coupling and complexity.
Why Other Options Are Wrong:
Abstraction is not limited to OO nor dictated by language choice; it is a universal design strategy.
Common Pitfalls:
Over-abstracting (adding layers without value) or under-abstracting (hard-coding vendor specifics) which harms flexibility.
Final Answer:
Correct
Discussion & Comments