What is the difference between abstraction and encapsulation?

Abstraction hides the implementation details whereas encapsulation hides the data. Abstraction lets you focus on what the object does instead of how it does it.

• Abstraction focuses on the outside view of an object (i.e. the interface) Encapsulation (information hiding) prevents clients from seeing it’s inside view, where the behavior of the abstraction is implemented.

• Abstraction solves the problem in the design side while Encapsulation is the Implementation.

• Encapsulation is the deliverables of Abstraction. Encapsulation barely talks about grouping up your abstraction to suit the developer needs.