Вы do должны переопределить конструкторы, потому что они фактически не наследуются.Это имеет смысл, если вы думаете, что конструкторы в некотором отношении немного похожи на статические методы.
В частности, вы бы не хотели бы , чтобы все конструкторы автоматически наследовались - в конце концовбудет означать, что каждый класс будет иметь конструктор без параметров, как это делает сам object
.
Если вы просто хотите вызвать конструктор базового класса, вам не нужно писать какие-либокод в теле конструктора - просто передайте аргументы в базовый класс согласно посту Валида.
Если ваш базовый класс начинает требовать больше информации, естественно, что вам придется изменить все производные классы - ина самом деле все, что вызывает конструкторы этих классов - потому что они должны предоставить информацию.Я знаю, что это может показаться болью, но это просто естественное следствие того, что делают конструкторы.