Polymorphism: the ability to associate many meanings to one method name.
- This is achieved through a special mechanism known as late binding.
Binding: The process of associating a method definition with a method invocation.
Early (Static) Binding: Associating a definition with its invocation at compile time.
Late (Dynamic) Binding: Associating a definition with its invocation at runtime (when its invoked).
- Java uses late bindings for all methods except for:
- private methods
- final methods
- static methods