オーバーロードされたコンストラクターを持つ親クラスがあり、オプションのパラメーターを持つコンストラクターを持つサブクラスがあります。サブクラスのコンストラクターが、それ自体のオプションのパラメーターを保持しながら、親クラスのオーバーロードを公開する方法はありますか?
2つのクラスとそれらに必要なコンストラクターのサンプルコードを次に示します。
class Foo {
Foo(String arg0)
{
// do some stuff with arg0
}
Foo(String arg0, List<x> arg1)
: this(arg0)
{
// do some other stuff with arg1 that is special because we have an arg1
}
}
class Bar : Foo {
Bar(String arg0, List<y> arg2 = null, String arg3 = "")
: base(arg0)
{
// some third thing with arg2 and arg3
}
}
これは、親コンストラクターのオーバーロードを公開する必要がある他のサブクラスコンストラクターのメソッドシグネチャですが、問題はそれをどのように行うかです。
Bar(String arg0, List<x> arg1, List<y> arg2 = null, String arg3 = "")
私は解決策を見つけたと思いますが、それが可能な限りきれいかどうかはわかりません。それが唯一の選択肢である場合に備えて、私はそれを答えとして投稿しました。