What can polymorphism do? 

Design and implement systems that are easily extensible.
New classes can be added with little/no modification to the generic portions of the program.
Only parts of the program that must be altered to accommodate new classes are those that require direct knowledge of the new classes that the programmer adds to the hierarchy.