黑马程序员技术交流社区
标题:
关于重载,f为什么这个函数不可以和给定函数同时存在与....
[打印本页]
作者:
刘凯旋
时间:
2014-3-18 14:43
标题:
关于重载,f为什么这个函数不可以和给定函数同时存在与....
本帖最后由 刘凯旋 于 2014-3-19 10:18 编辑
void show(int a,char b,double c){}
a.
void show(int x,char y,double z){}//没有,因为和原函数一样。
b.
int show(int a,double c,char b){}//重载,因为参数类型不同。注意:重载和返回值类型没关系。
c.
void show(int a,double c,char b){}//重载,因为参数类型不同。注意:重载和返回值类型没关系。
d.
boolean show(int c,char b){}//重载了,因为参数个数不同。
e.
void show(double c){}//重载了,因为参数个数不同。
f.
double show(int x,char y,double z){}//没有,这个函数不可以和给定函数同时存在与一个类中。为什么这个函数不可以和给定函数同时存在与一个类中?
作者:
无道
时间:
2014-3-18 15:02
因为它们的参数类型,函数名都是相同的,当实际传入 12, a, 12.2 时,此时的jvm不知道你想要的结果是什么样的,所以它也不知道调用那个函数。jvm不知道你想要什么样的返回值。
作者:
水蓝
时间:
2014-3-18 15:10
函数是否重载,看函数名 和 参数表类型
给你的函数声明重新编号:
void show(int a,char b,double c){} //1
void show(int x,char y,double z){} //2
int show(int a,double c,char b){} //3
void show(int a,double c,char b){} //4
boolean show(int c,char b){} //5
void show(double c){} //6
double show(int x,char y,double z){} //7
复制代码
1、2、7参数表中的参数类型都是相同的,所以不能同时出现。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2