title: Why is java.util.Observable not an abstract class?
body: <p>I just noticed that java.util.Observable is a concrete class. Since the purpose of Observable is to be extended, this seems rather odd to me. Is there a reason why it was implemented this way?</p>
  
  <p>I found <a href="http://javanook.tripod.com/patterns/observer.html" rel="noreferrer">this article</a> which says that </p>
  
  <blockquote>
    <p>The observable is a concrete class, so the class deriving from it must be determined upfront, as Java allows only single inheritance.</p>
  </blockquote>
  
  <p>But that doesn't really explain it to me. In fact, if Observable were abstract, the user would be forced to determine the class deriving from it. </p>