how polymorphism promote extensibility