Overloading was the wrong word. Hot here.
Have a look at this. The last figure on the page. You see the CThread Class and the CMicroThreadManager. Both have a Run Method. But because CMicroThreadManager implements its own Run() method an instance of CMicroThreadManager have its own implementation. If CMicroThreadManager would not have a Run() method the Run method of the base class would be called.
So. If multiple derived classes use the same implementation you put the implementation into the base, automaticly inherit it from the base. But if you need a special implementation in you derived class you can define a specific implementation.
That is object oriented design.