title: Class that should not be instantiated
body: <p>I want to create a class hierarchy in which I have a class <code>Block</code> which can be instantiated by itself. Then I have a class <code>List</code> which inherits from <code>Block</code> and contains methods common to all lists, and finally I have classes <code>OrderedList</code>, <code>LableledList</code> etc that inherit from <code>List</code>. I want people to be able to instantiate <code>OrderedList</code> etc, but not <code>List</code>. </p>
  
  <p>In other words, you can instantiate a plain <code>Block</code> and you can instantiate an <code>OrderedList</code> that inherits from <code>List</code> that inherits from <code>Block</code>, but you can't instantiate <code>List</code>. </p>
  
  <p>All attempts to Google this lead to Abstract Base Classes, but none provides and example that fits this case and I am having trouble extrapolating. </p>