title: Call overloaded method using template
body: <p>There are three classes, <code>ChildChild</code>, <code>Child</code> and <code>Parent</code> one extending another. I call method using template for most outer class and I would like to get method <code>doSomething</code> called to print "CHILD". Instead of that previous method gets called.</p>
  
  <pre><code>class Test {
      public &lt;T extends Parent&gt; void doSomething(T input) {
          System.out.println("PARENT");
      }
      public &lt;T extends Child&gt; void doSomething(T input) {
          System.out.println("CHILD");
      }
  
      public &lt;T extends Parent&gt; void run(T input) { doSomething(input); }
  }
  
  class Main {
      public static void main(String[] args) {
          Test t = new Test();
          t.run(new ChildChild());
      }
  }
  </code></pre>
  
  <p>Is that because of method run defining template only for Parent class?</p>