title: Difference between Encapsulation and Abstraction
body: <p>I had an interview today. I had a question from <strong>OOP</strong>, about the difference between <strong>Encapsulation</strong> &amp; <strong>Abstraction</strong>?</p>
  <p>I replied to my knowledge that <strong>Encapsulation</strong> is basically binding data members &amp; member functions into a single unit called <strong>Class</strong>. Whereas <strong>Abstraction</strong> is basically to hide implementation complexity &amp; provide ease of access to the users. I thought she would be okay with my answer. But she queried if the purpose of both is to hide information then what the actual difference between these two is? I could not give any answer to her.</p>
  <p>Before asking this question, I read other threads on StackOverFlow about the difference between these two <strong>OOP</strong>s concepts. But I am not finding myself in a position to convince the interviewer.</p>
  <p>Can anyone please justify it with the simplest example?</p>