Late binding
Also: extreme late binding, dynamic dispatch
Deferring decisions — about types, meanings, even code — to the last possible moment, so systems stay malleable.
Late binding means deciding things as late as you can: which method a message invokes, what type a value has, even which version of the code is running — resolved at run time rather than fixed at compile time.
Alan Kay listed "extreme late-binding of all things" as essential to his conception of objects. The motivation is not convenience but changeability. If decisions are deferred, a running system can be modified, extended, and repaired without being torn down and rebuilt. Kay's recurring metaphor is biological: you don't stop a body to upgrade it.
Late binding is the engine behind Smalltalk and Lisp's famous interactive malleability, and behind the dynamic dispatch at the core of most object systems. Its trade-off — flexibility paid for in performance and static guarantees — is one of the great recurring tensions in language design. See worse is better.