title: Why not abstract fields?
body: <p>Why can't Java classes have abstract fields like they can with abstract methods?</p>
  <p>For example: I have two classes that extend the same abstract base class.  These two classes each have a method that is identical except for a String constant, which happens to be an error message, within them. If fields could be abstract, I could make this constant abstract and pull the method up into the base class. Instead, I have to create an abstract method, called <code>getErrMsg()</code> in this case, that returns the String, override this method in the two derived classes, and then I can pull up the method (which now calls the abstract method).</p>
  <p>Why couldn't I just make the field abstract to begin with? Could Java have been designed to allow this?</p>