Polymorphism is the ability of an object to take on many forms so there is one interface with many implementations.
This is also mentioned as run-time polymorphism, dynamic binding, run-time binding, late binding and method overriding. Here having many forms is happening in different classes.
This is also mentioned as compile-time polymorphism, static binding, compile-time binding, early binding and method overloading. Here having many forms is happening in the same class.