Method overloading is a powerful mechanism that allows us to define cohesive class APIs. To better understand why method overloading is such a valuable feature, let’s see a simple example. Suppose that we’ve written a naive utility class that implements different methods for multiplying two numbers, three numbers, and so on.