title: Simple way to understand Encapsulation and Abstraction
body: <p>Learning OOP concepts especially interested to understand Abstraction and Encapsulation in depth.</p>
  
  <p>Checked out the below already</p>
  
  <p><a href="https://stackoverflow.com/questions/24626/abstraction-vs-information-hiding-vs-encapsulation">Abstraction VS Information Hiding VS Encapsulation</a></p>
  
  <p><a href="https://stackoverflow.com/questions/742341/difference-between-abstraction-and-encapsulation">difference between abstraction and encapsulation?</a></p>
  
  <p>I found very hard to understand those concepts with out a real and simple example class/code snippet.</p>
  
  <blockquote>
    <p>One of my colleagues said abstraction is nothing but creating abstract
    class and normal class that protects its member variable with scope is
    called Encapsulation.</p>
  </blockquote>
  
  <p>Is there a simple way I can understand and help others to understand what exactly they are, rather than repeating the below?</p>
  
  <blockquote>
    <p>Abstraction and encapsulation are complementary concepts: abstraction
    focuses on the observable behavior of an object... encapsulation
    focuses upon the implementation that gives rise to this behavior...
    encapsulation is most often achieved through information hiding, which
    is the process of hiding all of the secrets of object that do not
    contribute to its essential characteristics.</p>
  </blockquote>