in reply to sub classing best practice

Erm . . . blech. Sounds almost like you're grasping at the Abstract Factory pattern, but not quite. You need to give more detail why the superclass needs to know how to create instances of descendants and then someone might catch what you're trying to do.