Dans certains langages, il est possible d'utiliser la surcharge des opérateurs ou des fonctions. Cette technique consiste à donner le même nom à plusieurs fonctions sémantiquement équivalentes mais agissant sur des paramètres de type différent. Lorsqu'il rencontre ce nom de fonction, le compilateur choisit l'implémentation la plus adaptée en se basant sur le nombre et le type des arguments. Des langages comme CLOS étendent ce principe en choisissant parmi les fonctions homonymes non plus à la compilation mais à l'exécution. Ce mécanisme est appelé multi-méthode et est souvent présenté par ailleurs comme une extension du polymorphisme.