- Hiding implementation details is nothing but abstraction. The main advantages of abstraction are we can achieve security as we are not highlighting internal implementation.
- Enhancement will become easy. With out effecting outside person we can change our internal implementation.
- It improves maintainability.
- By using interfaces and abstract classes we can achieve abstraction.
- If we don’t know about implementation just we have to represent the specification then we should go for interface
- If we don’t know about complete implementation just we have partial implementation then we should go for abstract.
- If we know complete implementation and if we r ready to provide service then we should go for concrete class