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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 上官 初级黑马   /  2014-12-12 22:12  /  1204 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

子类继承父类   子类中为啥不能有和父类函数名字相同 但是返回值不同的函数

14 个回复

倒序浏览
参数列表不一样就可以写,例如重载,你说的是返回值烈性不同吧!!!
回复 使用道具 举报
一个程序中不能有返回值不同的方法,如果要调用这个发放JVM不确定调用哪一个,所以会报错。
回复 使用道具 举报
一个类中不能有同方法名字返回值类型不同的函数
但是可以有方法名和返回值都相同的但是数据类型不同的方法,这种叫重载
子父类中可以有方法名和返回值都相同数据烈性也相同的发放,这种叫重写
回复 使用道具 举报
比如int show(),和String show (),而一般调用时都是对象.方法()如果方法名字相同,但是返回类型不一样,Java虚拟机就不知道调用哪个函数了,
回复 使用道具 举报
这个是可以有的,叫做父子间的函数重载,必须满足重载的前提条件(方法名相同,参数属性(数两和类型)不同)。跟返回类型无关。
如果方法名相同,参数属性也相同,那么是不被允许的。因为在调用方法时,如果上述两个条件相同,虚拟机根本没法判断是在调用哪个。就会报错,所以就限制写这样的两个函数,直接在编译时报错,提醒程序员修改。
回复 使用道具 举报
一个类中不能有同方法名字返回值类型不同的函数
重载是方法名跟类名相同,参数列表即参数个数,参数类型,参数顺序不同
回复 使用道具 举报
本帖最后由 lishuliang28 于 2014-12-13 19:55 编辑

要不完全相同,那是重写。   要不函数名不同,重新定义吧
回复 使用道具 举报
Gyx 中级黑马 2014-12-13 20:08:03
9#
这个可以有,这种方法叫做子父函函数的重载,当子类出现和父类一模一样的函数(名字)时,  当子类对象调用该函数时,会运用子类函数的内容,  如同父类的函数被覆盖一样   这种情况是函数的另一特征:重写(覆盖),当子类继承父类,沿袭了父类的功能到子类中  但是子类 虽具备该功能,但是功能的内容和父类不一致  这是没有必要定义新功能,而是使用覆盖特殊,保留父类  的功能定义,并重写功能内容。
回复 使用道具 举报
AnElse 中级黑马 2014-12-13 21:04:04
10#
可以的,相同的是重写,不同相当于子类重写定义了一个函数,那么在子类里有两个函数
回复 使用道具 举报
上官 初级黑马 2014-12-14 18:13:25
11#
Gyx 发表于 2014-12-13 20:08
这个可以有,这种方法叫做子父函函数的重载,当子类出现和父类一模一样的函数(名字)时,  当子类对象调用 ...

返回值 不相同啊   但是还是谢谢
回复 使用道具 举报
上官 初级黑马 2014-12-14 18:14:31
12#
Jennifer 发表于 2014-12-12 23:55
一个类中不能有同方法名字返回值类型不同的函数
重载是方法名跟类名相同,参数列表即参数个数,参数类型, ...

谢谢  今天又看看了视频 基本理解了
回复 使用道具 举报
函数名字相同  参数相同 基本就是一样的函数 那么调用的时候出现 2个返回类型   上帝都不知道要选那个了。
所以不可能返回类型不同  其他函数名和参数一样的函数出现
回复 使用道具 举报
3楼说的对
回复 使用道具 举报
上官 发表于 2014-12-14 18:14
谢谢  今天又看看了视频 基本理解了

恩恩,理解了就ok了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马