Java uses "late-binding" for calling instance methods.
Late-binding means Java doesn't "bind" (think: choose) a method call to an actual method at compile time. The choice of method happens later... at run-time.
Compile time = early, run-time = late. I get it.
Referring to an object in many different ways (reference type is different from actual object class) is the point of polymorphism, which means "many forms".