Run-time binding, also known as dynamic binding or late binding, is a process in object-oriented programming where the method to be invoked is determined at runtime rather than compile time. This allows for more flexible and extensible code, enabling polymorphism and dynamic method dispatch based on the actual object type rather than the reference type.