Avatar
@tarunon さんはよく FooFoo? に暗黙の型変換されるのを邪悪だと言ってますが、オーバーライドで戻り値を Foo? から Foo に狭められるなら FooFoo? のサブタイプでないといけないわけで、それなら Foo? 型変数に Foo を代入するのは暗黙の型変換ではなくアップキャストとみなせるわけですが、それについてはどうですか?