Overriding vs. Overloading
There are two major differences between overloading and
overriding.
Overloading requires unique signatures whereas
overriding requires the same signature and
return type.
Second, overloading requires that each
overloaded version of the function be specified
within the same scope whereas overriding
requires each overridden version be specified
within the scope of each derived class.