Подкласс должен вызвать один (или оба, если вы переопределите оба, как в вашем примере) конструкторов суперкласса;но вы не можете заставить его переопределить конструкторы с теми же сигнатурами суперкласса.
Единственный способ гарантировать, что конструктор суперкласса называется , это иметь только один конструктор в суперклассе.
Я думаю, вам следует подумать о способе перепроектирования вашего суперкласса (возможно, создания 2 классов), чтобы иметь только один конструктор, если вы хотите, чтобы он вызывал всегда .1013 *
Но, если вы хотите, чтобы конкретный конструктор присутствовал в подклассе, вы должны изолировать «конструкционную» проблему на фабрике;где вы можете иметь специальные фабричные классы для каждого из ваших подклассов.Ваши фабрики будут реализовывать этот интерфейс:
interface AbstractClassFactory {
AbstractClass create( Type arg0, Type arg1, Type arg2 );
AbstractClass create( Type onlyOneArg );
}