Абстрактный метод, возвращающий экземпляр производного класса

Можно ли создать абстрактный метод, который должен возвращать экземпляр производного класса? Я могу сделать это:

abstract class Base
{
   public abstract Base GetObj();
}

class Derived : Base
{
   public Derived() { }

   public override Base GetObj()
   {
       return new Derived();
   }
}

Но мне было интересно, есть ли способ сделать это, чтобы Derived :: GetObj () был вынужден возвращать Derived ?

Спасибо.

9
задан Eric 20 February 2012 в 12:49
поделиться