Un polimorfisme ad hoc[1]En els llenguatges de programació, és un tipus de polimorfisme en el qual les funcions polimòrfiques es poden aplicar a diferents tipus d'arguments. Una funció polimòrfica pot tenir diverses implementacions diferents i potencialment heterogenis depenent del tipus d'arguments als quals s'aplica. En el polimorfisme ad-hoc cal que s'especifiqui quins tipus de dades es poden usar. Això està en contrast amb el polimorfisme paramètric (també anomenat genericitat), en el qual les funcions polimòrfiques s'escriuen sense la menció de qualsevol tipus específic i, per tant, pot aplicar una única implementació abstracta a qualsevol nombre de tipus d'una manera transparent. Aquesta classificació va ser introduïda per Christopher Strachey en 1967.[2]
El polimorfisme ad-hoc s'aconsegueix gràcies al: subtipatge, sobreescriptura i sobrecàrrega de mètodes i lligam dinàmic missatge-mètode.