title: How to Inherit method but with different return type?
body: <p>Given the following classes:</p>
  
  <pre><code>ClassA
  {
       public ClassA DoSomethingAndReturnNewObject()
       {}    
  }
  
  ClassB : ClassA
  {}
  
  ClassC : ClassA
  {}
  </code></pre>
  
  <p>Is there a way to get <code>ClassB</code> and <code>ClassC</code> to inherit the method but customize the return type to their own class?</p>
  
  <p>I prefer not to copy the method from ClassA and change the type there. </p>
  
  <p>I need to get a <code>ClassB</code> object when I call <code>ClassB.DoSomethingAndReturnNewObject()</code>.</p>
  
  <p>I need to get a <code>ClassC</code> object when I call <code>ClassC.DoSomethingAndReturnNewObject()</code>.</p>
  
  <p>Something like calling a constructor based on current type like: <code>this.GetType()</code>? But I have no clue how to actually do that.</p>