You have some constructors in each subclass, and their ontology is almost identical.Create a new constructor in the superclass and call it in the subclass constructor.
Motivation: constructor is a wonderful thing. They are not common functions, and they are more restrictive than normal functions.
If you see that the functions in each subclass share the same behavior, the first thought should be to extract the common behavior into an independent function and then promote the function to a superclass. For constructors, the common behavior of each other is often "Object Construction ". At this time, you need to provide a constructor in the superclass, and then let the subclass call it. In many cases, the only action of a subclass constructor is to call a superclass. Here, you cannot use the pull up method (method up) because you cannot inherit the superclass constructor from the subclass.
If the refactoring process is too complex, you can consider using replace constructor with factory method (replace constructors with factory functions ).