Difference between "creating a derived class" and "override a base class with derived class"

In reply to dave_59:

I got the answer for my second question.(When to use what)
But does it make any difference?

And one more thing, I have a working code where the virtual class is registered with the factory.[You mentioned that this can’t be done.].