What is dynamic binding (Java)?

Method calls resolved at runtime.

Examples:

Overriding methods in Java are resolved using dynamic binding. If subclass does not implement any override, super class methods are called instead.

We are unable to do this at compile time because we do not know always know the exact type instantiated at compile time.