A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© GISQZC 中级黑马   /  2014-3-19 09:23  /  1123 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请看图片里的int show 函数为什么叫产生了调用的不确定性?是返回了一个常数2的原因么?

捕获.PNG (13.67 KB, 下载次数: 5)

捕获.PNG

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

7 个回复

倒序浏览
函数名相同,参数列表相同,证明是相同的两个函数,
但是要求返回值确不相同,运行时候JAVA 就不知道 该返回哪个值,
所以说是“调用不确定性”。

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报 1 0
所谓的函数重载是指,函数名相同,但函数的参数个数和类型不同,在该题中函数名相同,参数个数和类型都相同,虽然函数返回值不同,但程序依然会认为他们是同一个函数,返回值是在函数运行完成后才会出现的,所以在程序未运行前,程序是无法分辨该调用哪个函数的

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
一个类中不允许出现两个或两个以上函数名和参数类型完全相同的函数。
因为调用函数的时候编译器看的是函数名和参数,而不看返回值类型。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
函数名相同,参数个数相同,参数类型相同,只有返回值类型不同,表示的应该是同一个函数
当你调用函数的时候,就不知道该调用哪个函数
所以是“不确定性”

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
方法(函数)重载:
1.方法名相同
2.参数列表中,参数类型、参数个数、参数(类型)顺序不同
3.与返回值类型无关
原方法中的返回值类型void,例a中返回值类型int,参数列表相同,显然不是重载,虚拟机会默认为”两个相同的方法),识别不了该执行哪个方法,从而产生调用不确定性,通常这种情况在编译期就会产生编译错误

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
重载的概念:在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型(包括类型顺序)不同即可。
重载的特点:与返回值类型无关,只看参数类表。
题目中的同名函数虽然返回值类型不同,但是参数个数与参数类型均相同,所以没有重载。
题目中的函数不能同时在一个类中出现,两个函数都叫show函数,参数类型和参数个数也相同,当调用show函数时,根本不确定调用哪个show函数,所以说产生了调用的不确定性。与返回值类型无关。
注意:重载的特点是与返回值类型无关。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
重载,只看同名函数的参数列表,与返回值无关,它们参数列表相同,所以不知道你要调用的是哪个show方法。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马