overloading

overloading allows different methods to have the same name, but different signatures (different argument types, different number of arguments). The resolution happen at compile time. It is a special case of multi-method dispatch.