确定重载函数被调用的依据

来源:互联网 发布:centos修改locale 编辑:程序博客网 时间:2024/05/22 06:20
这个标题或许还可以叫做,怎么样判断两个函数是否是重载函数。由于今天做了道面试题,题目是:系统在调用重载函数时,能作为确定那个重载函数被调用的依据是()  我选的是A函数返回类型,正确答案是B参数个数。查阅书籍之后发现重载函数的定义是:同一个类中包含了两个或两个以上方法的方法名相同,但形参列表不同,则被称为方法重载.方法重载就要求两同一不同:同一类中方法名相同,但是参数列表不同。我来补充一下自己发现的一些含义。上面两同一不同没有提到返回值类型不同,我用代码测试了一下,当两个函数名相同,参数也相同,但是返回值类型不同就会报错。如下就会报错。
public void fun(){        System.out.println("this is void fun method");    }    public int fun(){        System.out.println("this is method return int");        return 1;    }

所以同名同参数方法,方法返回值类型不同,就会报错,因为系统会提示该方法已经存在了。

第二点就是,方法名相同,返回值相同,参数名不同也是同样的错误。这个就有点画蛇添足了,但是对于追求严谨或者说对java不太理解的就会有很多无脑的疑问。所以,我才产生了这样的疑问,事实证明我是对的。参数的名称不同但是类型相同也是会报错的,如下:

 public void  fun(int a){    } public void fun(int b){    }

如果有需要补充的,欢迎大家积极评论。

0 0