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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 思考。。。 中级黑马   /  2015-5-26 12:18  /  664 人查看  /  21 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Demo
{
        int show(int a,int b){ return 0; }
}
请问下面这条函数为什么不能存在Demo子类中,不可以理解为重载吗?
public short show(int a,int b){ return 0; }

21 个回复

倒序浏览
重载涉及到的只是参数列表,你这当然不算
回复 使用道具 举报
参数列表时一样的,所以实为同一个方法,你的返回值类型不同,所以会报错
回复 使用道具 举报
重载只看参数列表吧
回复 使用道具 举报 1 0
明白了,谢谢各位的答复~
回复 使用道具 举报
这样JVM会犯迷糊的,调用方法的时候不知道调用哪个,因为执行时,一开始是不会看返回值类型的
回复 使用道具 举报 1 0
这是复写,重载实在同一个函数中,父子间的是覆写。这是一个基本的概念要搞清楚
回复 使用道具 举报
mmakun 中级黑马 2015-5-26 15:54:38
8#
重载只看函数名与参数列表
回复 使用道具 举报
因为父类返回的是int,子类返回的是short,short类型不能安全的转为int,会有精度损失~
回复 使用道具 举报
重载是参数列表不相同
回复 使用道具 举报
重载跟返回值类型无关
回复 使用道具 举报
你的返回值类型是short,而你参数列表是两个int变量,运算结果都没明确
回复 使用道具 举报
重载是函数名,函数返回值一样!参数列表不一样!
回复 使用道具 举报
你的两个方法不能理解成重载,方法重载是指在同一个类中存在多个同名方法,而且这多个同名方法的参数列表各不相同(参数的类型和个数)。
回复 使用道具 举报
重载返回值类型必须一致
回复 使用道具 举报
重载是不看返回值类型的,这样就错了。
回复 使用道具 举报
重载只看参数列表与返回值无关
回复 使用道具 举报
重载是在一个类中实现的,区分就是参数列表不同。你这个也不是复写,复写时权限必须大于要复写的权限,返回值类型相同,函数名一样,参数列表相同
回复 使用道具 举报
爱李萝卜 发表于 2015-5-27 19:06
重载是在一个类中实现的,区分就是参数列表不同。你这个也不是复写,复写时权限必须大于要复写的权限,返回 ...

明白,复写时,返回值类型一定要相同吗?
回复 使用道具 举报
这个明显不是重载,重载要参数类型不同才行
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马