In certain systems for object-oriented programming such as the Common Lisp Object System and Dylan, a generic function is an entity made up of all methods having the same name.

Generic functions correspond roughly to what Smalltalk calls messages; but when a generic function is called, method dispatch occurs on the basis of all arguments, not just a single privileged one. See under multiple dispatch for more.