CarModel
によって実装される抽象クラスModel
があります。抽象クラスの戻り値の型としてローカルクラスを使用します。
私はModel
抽象クラスのメソッドClone
を持っています。インスタンス化するクラスの型を返したいと思います。 Clone
はタイプModel
でなければならないので、
abstract class Model
{
public abstract Model Clone();
}
class CarModel : Model
{
public override CarModel Clone() {
return undefined;
}
}
は、しかし、これは動作しません。
は例えば、私はCarModel
は以下のように、CarModel
を返すClone
方法を必要とするModel
を実施したいと思います。これは、CarModel
が実際にBikeModel
を返すClone
メソッドを実装できるため、私が望む結果ではありません。
これはできますか?そしてもしそうなら、どうですか?
[ジェネリックを利用し、C#の共変戻り値の型](の可能性のある重複http://stackoverflow.com/questions/4348760/c-sharp-covariant-return-types-有用なジェネリック) –