ad hoc polymorphism
applying polymorphic functions to arguments of different types
operator overloading
type of polymorphism in some programming languages where operators have different implementations depending on their arguments
function overloading
in computer programming, creation of multiple function implementations with the same name