Process of selecting which implementation of a polymorphic operation (method or function) to call at run time