Представьте себе базовый класс с множеством конструкторов и виртуальным методом
public class Foo
{
...
public Foo() {...}
public Foo(int i) {...}
...
public virtual void SomethingElse() {...}
...
}
и теперь я хочу создать класс-потомок, который переопределяет виртуальный метод:
public class Bar : Foo
{
public override void SomethingElse() {...}
}
И еще один потомок, который делает еще кое-что:
public class Bah : Bar
{
public void DoMoreStuff() {...}
}
Действительно ли мне нужно копировать все конструкторы из Foo в Bar и Bah? И потом, если я изменю сигнатуру конструктора в Foo, нужно ли мне обновлять ее в Bar и Bah?
Нет ли способа наследовать конструкторы? Нет ли способа поощрить повторное использование кода?