黑马程序员技术交流社区
标题:
请教大伙毕老师上课讲的问题
[打印本页]
作者:
GISQZC
时间:
2014-3-19 09:23
标题:
请教大伙毕老师上课讲的问题
请看图片里的int show 函数为什么叫产生了调用的不确定性?是返回了一个常数2的原因么?
捕获.PNG
(13.67 KB, 下载次数: 8)
下载附件
2014-3-19 09:20 上传
作者:
何建明
时间:
2014-3-19 09:32
函数名相同,参数列表相同,证明是相同的两个函数,
但是要求返回值确不相同,运行时候JAVA 就不知道 该返回哪个值,
所以说是“调用不确定性”。
作者:
zhxu188
时间:
2014-3-19 09:43
所谓的函数重载是指,函数名相同,但函数的参数个数和类型不同,在该题中函数名相同,参数个数和类型都相同,虽然函数返回值不同,但程序依然会认为他们是同一个函数,返回值是在函数运行完成后才会出现的,所以在程序未运行前,程序是无法分辨该调用哪个函数的
作者:
欢欢
时间:
2014-3-19 09:58
一个类中不允许出现两个或两个以上函数名和参数类型完全相同的函数。
因为调用函数的时候编译器看的是函数名和参数,而不看返回值类型。
作者:
盛德成
时间:
2014-3-19 11:06
函数名相同,参数个数相同,参数类型相同,只有返回值类型不同,表示的应该是同一个函数
当你调用函数的时候,就不知道该调用哪个函数
所以是“不确定性”
作者:
Sage
时间:
2014-3-19 11:52
方法(函数)重载:
1.方法名相同
2.参数列表中,参数类型、参数个数、参数(类型)顺序不同
3.与返回值类型无关
原方法中的返回值类型void,例a中返回值类型int,参数列表相同,显然不是重载,虚拟机会默认为”两个相同的方法),识别不了该执行哪个方法,从而产生调用不确定性,通常这种情况在编译期就会产生编译错误
作者:
朱长水
时间:
2014-3-19 12:09
重载的概念:在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型(包括类型顺序)不同即可。
重载的特点:与返回值类型无关,只看参数类表。
题目中的同名函数虽然返回值类型不同,但是参数个数与参数类型均相同,所以没有重载。
题目中的函数不能同时在一个类中出现,两个函数都叫show函数,参数类型和参数个数也相同,当调用show函数时,根本不确定调用哪个show函数,所以说产生了调用的不确定性。与返回值类型无关。
注意:重载的特点是与返回值类型无关。
作者:
a569609054
时间:
2014-3-19 12:28
重载,只看同名函数的参数列表,与返回值无关,它们参数列表相同,所以不知道你要调用的是哪个show方法。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2