title: When using overloading with type promotion, why method calling is ambiguous?
body: <pre><code>public class aman {
      void m(double a , int b, int c) {
          System.out.println("second");
      }
      void m(float a , int b, double c) {
          System.out.println("first");
      }
      public static void main(String[] args) {
          aman obj = new aman();
          obj.m(23, 12, 1);
      }
  }
  </code></pre>
  
  <p>Here, method m() has been overloaded but i am not understanding why the call is ambigous because in first method only 1 conversion needs to take place whereas in second method, two conversions are required. So, definitely first method should have been called. Please give the reason why this is not happening or if i am missing some rule.</p>