.指出下列哪个方法与方法public void add(int a){}为合理的重载方法。 A public int add(int a) B public void add(long a) C public void add(int a,int b) D public void add(float a) B 为什么不是啊?
解决方案 »
- 求助!!JPanel中通过ActionListener添加组件时组件被隐藏的问题!!
- java swing 中 jSplitPane分成的两部分大小怎么调啊
- 关于jfreechart的两个问题
- 过滤字符串
- 求教一个JAVA小程序,谢谢.
- 大家新年好!请教关于Javazoom UploadBean组件 如何解决上载文件 到 网络映射盘!!!
- jsp连接acess数据库时遇到的问题,在线等待
- servlet这个包在那个目录下
- 如何针对大型的项目进行单元测试?(java junit)
- 想学JAVA请大家推荐几本好的书籍。
- 数据库 新手问题
- 在java的函数中用 synchronized限定的函数与能够保证该函数内的多个sql完整执行
区分重载最简单的规则:每个重载的方法都必须有一个独一无二的参数列表,D选项肯定是重载的了
至于B,int 和long虽然是不同的类型,但都是整形,虽不能说不是重载,但如果只选一个,还是D更接近
因为B和D容易引起混乱。
比如
short s=1;
double d=1.5;
add(s); //add(int), add(long), add(float) ?
add(d); //add(int), add(long), add(float) ?
重载方法的定义是:方法名相同,参数类型或者参数个数不同称为方法重载,另外,返回值的异同并不能作为方法重载判断的依据。
综上可见,在方法名相同的前提下,参数类型和参数个数才是决定该方法是否为重载的关键。
所以现在重新来看上面的问题,不难看出,除了A,其实BCD都是原来方法的重载
一己之见,欢迎拍砖。
其他两个都是加大了参数的宽度,但是从方法适用范围来说其他两个都完全包含了原题的方法,所以不合理
C改变了参数列表,需要两个参数,相对比较合理
这题目很莫名其妙
A
public int add(int a) {
a++;
return 0;
} B
public void add(long a){
a++;
} C
public void add(int a,int b){
a++;
} D
public void add(float a){
a++;
}原题
public void add(int a){
a++;
}没什么太大的区别,唯一不同的也就是float那个方法内部的a是float如果直接输出结果是带.0的罢了