title: Class inheritance with empty subclasses
body: <p>Suppose I have a class modeling expense items, named Expense.  We have transportation, food, and wage expenses.  Let's say that all of the properties are the same, so there is only the one Expense class, with a "type" property.  However, let's say I add a new type of expense, called training, and this requires some new fields about the type of training, location, and date occurred.  Additionally, there are a couple new methods specific to this training expense.  So at this point, I need to subclass the Expense class so that I can have a TrainingExpense class.  As the subclass is now defining the type of expense, does this make it redundant to have a "type" property in the Expense base class?  Should I now just subclass the Expense base class for every different type?  Or should I just leave the "type" property in the base class and have it be redundant for any subclasses?</p>