黑马程序员技术交流社区

标题: java继承与多态的问题 [打印本页]

作者: 思考。。。    时间: 2015-5-26 12:18
标题: java继承与多态的问题
class Demo
{
        int show(int a,int b){ return 0; }
}
请问下面这条函数为什么不能存在Demo子类中,不可以理解为重载吗?
public short show(int a,int b){ return 0; }
作者: 半世心修    时间: 2015-5-26 12:51
重载涉及到的只是参数列表,你这当然不算
作者: 想要那片海    时间: 2015-5-26 13:45
参数列表时一样的,所以实为同一个方法,你的返回值类型不同,所以会报错
作者: 嘉Ming    时间: 2015-5-26 14:06
重载只看参数列表吧
作者: 思考。。。    时间: 2015-5-26 14:11
明白了,谢谢各位的答复~
作者: 姬光普    时间: 2015-5-26 14:19
这样JVM会犯迷糊的,调用方法的时候不知道调用哪个,因为执行时,一开始是不会看返回值类型的
作者: kmlitheima    时间: 2015-5-26 15:36
这是复写,重载实在同一个函数中,父子间的是覆写。这是一个基本的概念要搞清楚
作者: mmakun    时间: 2015-5-26 15:54
重载只看函数名与参数列表
作者: dailihua    时间: 2015-5-26 21:54
因为父类返回的是int,子类返回的是short,short类型不能安全的转为int,会有精度损失~
作者: 郭.威    时间: 2015-5-26 22:02
重载是参数列表不相同
作者: zhangjnia    时间: 2015-5-26 22:42
重载跟返回值类型无关
作者: 流泪的青蛙    时间: 2015-5-26 22:52
你的返回值类型是short,而你参数列表是两个int变量,运算结果都没明确
作者: 小车车    时间: 2015-5-26 22:58
重载是函数名,函数返回值一样!参数列表不一样!
作者: qubangjun    时间: 2015-5-26 23:21
你的两个方法不能理解成重载,方法重载是指在同一个类中存在多个同名方法,而且这多个同名方法的参数列表各不相同(参数的类型和个数)。
作者: 谢晓明    时间: 2015-5-26 23:21
重载返回值类型必须一致
作者: 黯然残影    时间: 2015-5-27 00:12
重载是不看返回值类型的,这样就错了。
作者: 途中ms前进    时间: 2015-5-27 18:53
重载只看参数列表与返回值无关
作者: 爱李萝卜    时间: 2015-5-27 19:06
重载是在一个类中实现的,区分就是参数列表不同。你这个也不是复写,复写时权限必须大于要复写的权限,返回值类型相同,函数名一样,参数列表相同
作者: 思考。。。    时间: 2015-6-27 10:59
爱李萝卜 发表于 2015-5-27 19:06
重载是在一个类中实现的,区分就是参数列表不同。你这个也不是复写,复写时权限必须大于要复写的权限,返回 ...

明白,复写时,返回值类型一定要相同吗?
作者: 八戒    时间: 2015-6-27 11:10
这个明显不是重载,重载要参数类型不同才行
作者: 改变    时间: 2015-6-27 14:33
会出现调用的不确定性,重载只与参数类型和个数有关吧
作者: 爱李萝卜    时间: 2015-6-27 16:55
思考。。。 发表于 2015-6-27 10:59
明白,复写时,返回值类型一定要相同吗?

是的,必须相同




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2