This is part of my rough notes and will probably be cleaned up and tweaked over time.
##Polymorphism
Polymorphism is the ability of subclasses to redefine the functionality of a parent class.
It is closely related to, but is not the same as, inheritance. The key word is redefine.
It's important to understand where Polymorphism and Inheritance differ, so let's do a comparison:
####Pure Inheritance A class that inherits from a parent class contains all the functionality of that class.