Chapter8 : (223) Replace Type Code with Subclasses