Abstract Classes and Polymorphism Revisited