Polymorphism is one of the core principles of Object Oriented Programming.  But what is polymorphism? The word ‘polymorphism’ means ‘having multiple forms’ (from the Greek ‘polýs’, meaning ‘many’, and ‘morphē’ meaning ‘form’, for all of you etymology nerds out there).  In...