如果参数的日期类型不同,那么输出结果是什么?

时间:2017-06-05 13:26:03

标签: java overloading

如果实际参数和形式参数的数据类型在重载方面有所不同,会发生什么?

Class A
{
   public void m1(int i)
    {
    System.out.println("int");
     }
     public void m1(float f)
     {
     System.out.println("float");
     }
 Public static void main(String[] args)
 {
  A a=new A();
  a.m1('a');
  a.m1(10l);
  }
  }

3 个答案:

答案 0 :(得分:0)

调用与参数类型对应的函数,这是OOP的一些基础,不仅在java中,而且在所有其他语言中。

答案 1 :(得分:0)

调用具有最接近匹配有效签名的方法。这可能是直接匹配(例如,完全相同的函数参数类型),或者(如在代码中)运行时知道如何自动将char a转换为int,因此具有{{1的方法调用param。

答案 2 :(得分:0)

在重载方法解析中,如果具有特定参数的匹配方法不可用,编译器不会立即引发任何错误, 首先,它将参数提升到下一级别并检查匹配的方法。 1)如果匹配的方法可用,那么它将被考虑,如果它不可用,则编译器再次将该参数提升到下一级别。 2)如果匹配的方法不可用,这个过程将一直持续到所有可能的促销为止。然后我们才会得到编译错误。 3)这在重载时称为自动提升。 以下是java中可能的促销活动 针对字节>短路/煤焦>内部 - >长> 浮子>双