This is sort of an opinionated question but the way I tend to write mine is such that the extra parameters have no real bearing on changing functionality. By that I mean that when my constructor requires an extra parameter in a subclass it is to maintain the standard functionality (but doing different underlying things) this way lets say I create ClassA = new ClassB(with some args); then functionality is the same whether I do this or ClassA = new ClassA(); and I usually use some sort of Factory method to create them so it's seamless in how they work. Again this is just how I do things and is in no way the absolute correct way to do things.