Представьте базовый класс со многими конструкторами и виртуальным методом
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?
Нет способа унаследовать конструкторы? Нет ли способа поощрения повторного использования кода?