title: How we achieve abstraction in java?
body: <p>As per definition, abstraction is hiding the implementation detail and revealing only the functionality. But exactly, what, where and which part we are hiding?</p>
  
  <p>AFAIK the following program is an example of Abstraction:</p>
  
  <pre><code>public interface ToBeImplemented { 
  
     public string doThis();
  }
  
  public class Myclass implements ToBeImplemented {
  
  @override
  public string doThis() {
  
  //Implementation
  
   return null;
   }
  }
  </code></pre>
  
  <p>If I am wrong and this is not abstraction then what is the correct example of Abstraction?</p>