Difference between abstraction and encapsulation

Encapsulation is

  • hiding the implementation details
  • hiding the internal details or mechanics of how an object does somethinghiding

Abstraction is

  • providing a generalization (say, over a set of behaviors).
  • hiding the internal details or mechanics hiding the internal details or mechanics 

information hiding is

  • about hiding internal properties that may not matter to consumer directly.