Polymorphism derives from the Greek, meaning "one name, many forms."

Polymorphism allows one name to be used for two or more related but technically different purposes.

The purpose of polymorphism (as it applies to OOP) is to allow one name to be used to specify a general class of actions.

Within a general class of actions, the specific action to apply is determined by the type of data involved.

More generally, the concept of polymorphism is the idea of "one interface, multiple methods".