title: instantiating an abstract class in JAVA?
body: <p>I am learning JAVA and following the book <a href="http://www.amazon.in/Java-Complete-Reference-Eighth-Edition-ebook/dp/B005EPVE6U/ref=dp_kinw_strp_1" rel="nofollow noreferrer">JAVA:The Complete Reference by Herbert Shildt</a>.</p>
  
  <p>I learned about abstract classes in Java, but could not understand reason behind this line:</p>
  
  <blockquote>
    <p>An abstract class cannot be directly instantiated with new operator.</p>
  </blockquote>
  
  <p>I searched over web and stackoverflow and followed these questions:  <a href="https://stackoverflow.com/questions/21681094/why-cant-we-instantiate-a-abstract-class-in-java">Why can&#39;t we instantiate a abstract class in JAVA?</a> and <a href="https://stackoverflow.com/questions/17077547/i-know-we-can-not-instantiate-either-an-interface-or-an-abstract-class-in-java">Why can&#39;t we instantiate an interface or an abstract class in java without an anonymous class method?</a></p>
  
  <p>In one answer, someone wrote as:</p>
  
  <blockquote>
    <p>Simply, in a good object oriented program, you should never want to
    instantiate an abstract class or interface. If you do, the design is
    probably wrong.</p>
  </blockquote>
  
  <p>I do not understand why it is important not to instantiate an abstract class for good <code>OOP</code> design. If someone can give a good explanation, then please help.</p>