What is Polymorphism

Many Forms

Polymorphism means "many forms". The same call does different things depending on the types involved. Java has two kinds:

Compile-time (static)Runtime (dynamic)
Achieved bymethod overloadingmethod overriding
Decidedby the compiler, from argument typesby the JVM, from the actual object
Also calledstatic binding, early bindingdynamic dispatch, late binding
Exampleprint(int) vs print(String)shape.area() on Circle or Square