title: Abstract Method That Returns an Instance of Derived Class
body: <p>Is it possible to create an abstract method that must return an instance of the derived class?  I can do this:</p>
  
  <pre><code>abstract class Base
  {
     public abstract Base GetObj();
  }
  
  class Derived : Base
  {
     public Derived() { }
  
     public override Base GetObj()
     {
         return new Derived();
     }
  }
  </code></pre>
  
  <p>But I was wondering if there was a way to do it such that <code>Derived::GetObj()</code> is forced to return a <code>Derived</code>?</p>
  
  <p>Thanks.</p>