社区
Java SE
帖子详情
一个java重载题,求解
wangtengkl
2010-04-17 07:07:09
.指出下列哪个方法与方法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 为什么不是啊?
...全文
138
16
打赏
收藏
一个java重载题,求解
.指出下列哪个方法与方法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 为什么不是啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qjtttt
2010-04-17
打赏
举报
回复
要说合理,明显是C,第一个改返回类型作为重载并不合理
其他两个都是加大了参数的宽度,但是从方法适用范围来说其他两个都完全包含了原题的方法,所以不合理
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的罢了
zhushoujun
2010-04-17
打赏
举报
回复
学习学习
张志备
2010-04-17
打赏
举报
回复
重载方法的定义是:方法名相同,参数类型或者参数个数不同称为方法重载,另外,返回值的异同并不能作为方法重载判断的依据。
综上可见,在方法名相同的前提下,参数类型和参数个数才是决定该方法是否为重载的关键。
所以现在重新来看上面的问题,不难看出,除了A,其实BCD都是原来方法的重载
一己之见,欢迎拍砖。
lonefeifei
2010-04-17
打赏
举报
回复
[Quote=引用 3 楼 justlearn 的回复:]
引用 2 楼 zfq642773391 的回复:
重载一般不要以返回值来区分,因为这样会造成程序的不稳定和可读性差,所以A不行
区分重载最简单的规则:每个重载的方法都必须有一个独一无二的参数列表,D选项肯定是重载的了
至于B,int 和long虽然是不同的类型,但都是整形,虽不能说不是重载,但如果只选一个,还是D更接近
为什么你不认为c是?我倒觉得后3个都是,要说最合理还是c了
[/Quote]
我也认为是C,嘿嘿
groovy2007
2010-04-17
打赏
举报
回复
b、c、d从语法上讲都是对的。但是c最好。
因为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) ?
notlogin
2010-04-17
打赏
举报
回复
刚查了下资料,说重载可以改变返回值。
但是没说,“只要返回值改变,就是重载”。所以对于重载方法来说,只改其变返回值,而不改变参数是不行的,编译报错。
以前做项目也不太常用重载,没注意这方面。
zfq642773391
2010-04-17
打赏
举报
回复
[Quote=引用 9 楼 notlogin 的回复:]
引用 8 楼 zfq642773391 的回复:
引用 6 楼 notlogin 的回复:
A不是重载,参数类型看错了
A是重载,他是以返回值来辨认的,只不过,以返回值来区分重载不是太好,不推荐使用
理论上说是的,但是编译器不会让你通过的,直接报错。
[/Quote]
哦
notlogin
2010-04-17
打赏
举报
回复
[Quote=引用 8 楼 zfq642773391 的回复:]
引用 6 楼 notlogin 的回复:
A不是重载,参数类型看错了
A是重载,他是以返回值来辨认的,只不过,以返回值来区分重载不是太好,不推荐使用
[/Quote]
理论上说是的,但是编译器不会让你通过的,直接报错。
zfq642773391
2010-04-17
打赏
举报
回复
[Quote=引用 6 楼 notlogin 的回复:]
A不是重载,参数类型看错了
[/Quote]
A是重载,他是以返回值来辨认的,只不过,以返回值来区分重载不是太好,不推荐使用
zfq642773391
2010-04-17
打赏
举报
回复
[Quote=引用 3 楼 justlearn 的回复:]
引用 2 楼 zfq642773391 的回复:
重载一般不要以返回值来区分,因为这样会造成程序的不稳定和可读性差,所以A不行
区分重载最简单的规则:每个重载的方法都必须有一个独一无二的参数列表,D选项肯定是重载的了
至于B,int 和long虽然是不同的类型,但都是整形,虽不能说不是重载,但如果只选一个,还是D更接近
为什么你不认为c是?我倒觉得后3个都是,要说最合理还是c了
[/Quote]
我错了 应该是c最合理,怎么说呢,这几个选项都是重载,只不过..
这题真艮。。。
notlogin
2010-04-17
打赏
举报
回复
A不是重载,参数类型看错了
qydcx7044862
2010-04-17
打赏
举报
回复
呵呵,primitive可以被自动的从占用较小存贮空间的数据类型转换到较大的,
notlogin
2010-04-17
打赏
举报
回复
[Quote=引用 2 楼 zfq642773391 的回复:]
重载一般不要以返回值来区分,因为这样会造成程序的不稳定和可读性差,所以A不行
区分重载最简单的规则:每个重载的方法都必须有一个独一无二的参数列表,D选项肯定是重载的了
至于B,int 和long虽然是不同的类型,但都是整形,虽不能说不是重载,但如果只选一个,还是D更接近
[/Quote]
说的非常对
但是这道题考的…………怎么说呢…………“合理的重载方法”,什么叫“合理”?你的“合理”跟我的“合理”是同一个范围吗? ABCD是重载方法肯定没错,问题就在让人蛋疼的“合理”两个字上。。。。。
至于B和原题的方法,只要传递的变量类型正确,程序完全可以正确运行。
justlearn
2010-04-17
打赏
举报
回复
[Quote=引用 2 楼 zfq642773391 的回复:]
重载一般不要以返回值来区分,因为这样会造成程序的不稳定和可读性差,所以A不行
区分重载最简单的规则:每个重载的方法都必须有一个独一无二的参数列表,D选项肯定是重载的了
至于B,int 和long虽然是不同的类型,但都是整形,虽不能说不是重载,但如果只选一个,还是D更接近
[/Quote]
为什么你不认为c是?我倒觉得后3个都是,要说最合理还是c了
zfq642773391
2010-04-17
打赏
举报
回复
重载一般不要以返回值来区分,因为这样会造成程序的不稳定和可读性差,所以A不行
区分重载最简单的规则:每个重载的方法都必须有一个独一无二的参数列表,D选项肯定是重载的了
至于B,int 和long虽然是不同的类型,但都是整形,虽不能说不是重载,但如果只选一个,还是D更接近
notlogin
2010-04-17
打赏
举报
回复
B不是么 如果B不是,D也不是
重载的定义就是方法名相同,然后 只要返回值类型、参数类型、参数个数,三者其中之一不同,就是重载函数
Java
重载
(什么是
重载
?什么时候
重载
?
重载
有什么好处?)
本文围绕
Java
中的方法
重载
展开。介绍了
重载
的来源,即面对不同类型数据求和等需求,可通过
重载
解决;说明了
重载
要求,如方法名和作用域相同、参数不同;还阐述了
重载
优点,定义端和调用端可用相同方法名实现不同功能,体现多态性。
Java
方法
重载
本文深入解析
Java
中的方法
重载
概念,包括如何通过改变参数数量和类型实现
重载
,以及
重载
与返回类型的关系。探讨了
重载
在提高代码可读性和灵活性方面的作用,并通过实例说明了类型提升对方法选择的影响。
Java
方法的
重载
本文详细介绍了
Java
中的方法
重载
,包括其定义、使用场景、原因(如提高代码可读性和灵活性),以及
重载
的规则(参数类型、个数和顺序的重要性)。通过实例演示了如何在类中定义并利用
重载
方法。
Java
——
重载
本文深入探讨了
Java
中的方法
重载
概念,包括其实现方式、条件及优点,并通过实例展示了如何利用
重载
来提高代码的可读性和灵活性。
Java SE
62,621
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章