title: Method return changing on extension
body: <p>I have a class <code>ClassA</code> with some methods returning items:</p>
  
  <pre><code>class ClassA {
      ClassA item(...) {...}
      Vector&lt;ClassA&gt; list(...) {...}
  }
  </code></pre>
  
  <p>These methods process an input and generate on the fly these kind of items. Now imagine I extend this class:</p>
  
  <pre><code>class ClassB extends ClassA {
      ...
  }
  </code></pre>
  
  <p>I do not override item() or list() methods in any case, but I'd like them to return a <code>ClassB</code> item (or vector of) without casting on the return (which is my current solution now). Is there any way to do so? Thanks in advance.</p>