"It is not the same, function overloading is a specific case of multiple dispatch, where you just use the type or class of the arguments, to provide the dispatch.
Multiple Dispatch allows for an arbitrary dispatch function that takes all the parameters and can do anything to decide the dispatch, for instance you could take x,y,z as parameters, then determine named directions like northeast above, or southwest below, and then define a method for each named direction. "