title: Does method overloading implicitly typecasts to larger type even though compatible type is available
body: <p>When I execute below program since child class has compatible methods call should have gone to child class but instead parent class methods are called. Is there any rule in overloading which is causing this behaviour ? </p>
  
  <pre><code>public class OverrideTest {
  
  public static void main(String[] args) {
      Parent d=new Child();
  
      d.test(10);
  
      d.add(1,2,3);        
     }
  }
  
  
  class Parent{
  
  void test(double d) {
      System.out.println("Value of D:"+ d);
  }
  
      public void add(double a, double b, double c){               
          double sum = a+b+c; 
          System.out.println("sum Double:"+ sum);
  
      } 
  }
  
  class Child extends Parent{
  
    void test(int i) {
      System.out.println("i:"+ i);
  }
  
  public void add(int a, int b, int c){          
          int sum = a+b+c; 
          System.out.println("sum Int:"+ sum);
      } 
  }
  </code></pre>