operator overloading ⇝

overloading

(Or "Operator overloading"). Use of a single
symbol to represent operators with different argument types,
e.g. "-", used either, as a monadic operator to negate an
expression, or as a dyadic operator to return the difference
between two expressions. Another example is "+" used to add
either integers or floating-point numbers. Overloading is
also known as ad-hoc polymorphism.

Ad-hoc polymorphism (better described as overloading) is the
ability to use the same syntax for objects of different types,
e.g. "+" for addition of reals and integers or "-" for unary
negation or diadic subtraction. Parametric polymorphism
allows the same object code for a function to handle arguments
of many types but overloading only reuses syntax and requires
different code to handle different types.