如果实际参数和形式参数的数据类型在重载方面有所不同,会发生什么?
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);
}
}
答案 0 :(得分:0)
调用与参数类型对应的函数,这是OOP的一些基础,不仅在java中,而且在所有其他语言中。
答案 1 :(得分:0)
调用具有最接近匹配有效签名的方法。这可能是直接匹配(例如,完全相同的函数参数类型),或者(如在代码中)运行时知道如何自动将char a
转换为int,因此具有{{1的方法调用param。
答案 2 :(得分:0)
在重载方法解析中,如果具有特定参数的匹配方法不可用,编译器不会立即引发任何错误, 首先,它将参数提升到下一级别并检查匹配的方法。 1)如果匹配的方法可用,那么它将被考虑,如果它不可用,则编译器再次将该参数提升到下一级别。 2)如果匹配的方法不可用,这个过程将一直持续到所有可能的促销为止。然后我们才会得到编译错误。 3)这在重载时称为自动提升。 以下是java中可能的促销活动 针对字节>短路/煤焦>内部 - >长> 浮子>双