- Abstraction is one of the characteristic features of Object Oriented Programming.
- Abstraction enforces the rule that a component "exposes only which is required for the context".
- This ensures a proper layer of view, where the client is provided with access to those features or contents of it which are needed for the moment.
- In C#, abstraction is achieved in two ways: by the use of abstract classes and interfaces.
- An abstract class is a class which can’t be instantiated but is extended by its sub classes which create different versions of the functionality defined in the abstract class.
- An interface is like a contract – it only contains a template of how the component would look like, and all its sub classes must implement the same design.
- Abstract classes are used to create base functionality with a scope for further extension, while interfaces are created to use while interacting with other components without having to use concrete types that contain functionality.
Object Oriented Programming Concepts – Abstraction