Abstraction is a mechanism of hiding the implementation details from the user and showing only the functionality. It helps to reduce complexity and increase reusability.