What is Abstraction in C#?
π‘ Concept: Abstraction in C#
Abstraction in C# is the process of hiding implementation details and showing only the necessary features of an object. It helps reduce complexity and increase code reusability and maintainability.
π Quick Intro
Abstraction lets you define what an object does without specifying how it does it. In C#, abstraction is implemented through abstract classes and interfaces.
π§ Analogy
Think of a car: You use the steering wheel, brakes, and accelerator to drive. You donβt need to understand how the engine or transmission works. Abstraction is like thatβit lets you use functionality without knowing internal mechanics.
π§ Technical Explanation
- π§© Abstraction allows defining methods without implementation using abstract classes or interfaces.
- π§± Abstract classes can have both implemented and unimplemented methods.
- π Interfaces contain only method signatures (unless using C# 8+ default implementations).
- π The actual implementation is provided in the derived class.
- βοΈ Abstraction supports extensibility and helps enforce contracts across different types.
π― Use Cases
- Designing plugin-based systems where the interface defines the expected behavior.
- Building scalable APIs or services with defined contracts.
- Enforcing a coding standard across unrelated implementations.
π» Real Code Example
// Abstract class
public abstract class Shape {
public abstract double Area();
}
// Concrete class
public class Circle : Shape {
private double radius;
public Circle(double radius) => this.radius = radius;
public override double Area() => Math.PI * radius * radius;
}
// Usage
Shape s = new Circle(5);
Console.WriteLine(s.Area());

β Interview Q&A
Q1: What is abstraction in C#?
A: Hiding implementation details while exposing essential features.
Q2: What are the ways to achieve abstraction?
A: Using abstract classes and interfaces.
Q3: Can an abstract class contain a constructor?
A: Yes, abstract classes can have constructors.
Q4: Can an interface have implementation in C#?
A: Yes, starting in C# 8.0, interfaces can have default method implementations.
Q5: Whatβs the difference between abstraction and encapsulation?
A: Abstraction hides logic; encapsulation hides data.
Q6: Can you instantiate an abstract class?
A: No, abstract classes cannot be instantiated directly.
Q7: Why is abstraction important?
A: It simplifies usage and improves code maintainability.
Q8: Is it possible to have access modifiers in interface methods?
A: Only in C# 8.0+ with default implementations.
Q9: Can a class be both abstract and sealed?
A: No, itβs a contradiction in terms.
Q10: Can abstract classes implement interfaces?
A: Yes, and the derived class can provide implementation.
π MCQs
Q1. What is abstraction in C#?
- Showing everything
- Hiding internal details
- Encapsulation
- Interface inheritance
Q2. Which of these provides abstraction?
- Static class
- Interface
- Enum
- Struct
Q3. Can you instantiate an abstract class?
- Yes
- No
- Only in .NET 7
- Using dynamic
Q4. Which keyword defines abstract methods?
- sealed
- override
- virtual
- abstract
Q5. Which C# version introduced default interface methods?
- C# 6
- C# 7
- C# 8.0
- C# 9
Q6. Abstract classes can contain:
- Only abstract methods
- Only fields
- Constructors only
- Both abstract and implemented methods
Q7. Which of the following hides implementation?
- Encapsulation
- Serialization
- Abstraction
- Overloading
Q8. Interfaces are mostly used for:
- Data storage
- Access control
- Defining contracts
- UI building
Q9. What is the use of abstract keyword?
- To override a method
- To define methods without implementation
- To make a class static
- To seal a class
Q10. Which can't be used to achieve abstraction?
- Interfaces
- Abstract classes
- Structs
- Base classes
π‘ Bonus Insight
Abstraction is foundational to maintainable architecture. When used with interfaces and design patterns like Repository or Strategy, it enables high cohesion and low coupling across systems.
π PDF Download
Need a handy summary for your notes? Download this topic as a PDF!