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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 rose_xiaomei 于 2015-5-13 22:21 编辑

class Demo{ int show ( int a , int b ) { return 0;} }
函数public short show ( int a , int b ){ return 0 ;}为什么不能存在与Demo的子类中?希望给一个明白的解释,

6 个回复

倒序浏览
本帖最后由 LPStone 于 2015-5-12 20:58 编辑

因为子类继承父类的方法,所以子类终会有一个int show ( int a , int b ) { return 0;}方法当你再定义一个int show ( int a , int b ) { return 0;}后,当调用show这个方法时会产生调用不明确的错误,因为这两个方法既不覆盖,也不重载。
回复 使用道具 举报 2 0
重载函数要求,子类的函数返回类型可以是父类函数返回类型及其子类,因为int和short都是基本类型,并非对象,不存在父类和子类的关系。所以不行。
重载函数要求,覆盖方法的访问权限要比被覆盖方法的访问权限更大或相同。所以两个函数的访问权限没有覆盖上的问题。
回复 使用道具 举报
子类的方法既没有重写父类方法,也没有重载,报的错误叫做“重复定义”
回复 使用道具 举报
guoyangpeng 来自手机 中级黑马 2015-5-12 22:50:50
报纸
学习了,菜鸟走过!
回复 使用道具 举报
如果被对象调用,对象就不知道调用哪一个了
回复 使用道具 举报
LPStone 发表于 2015-5-12 20:55
因为子类继承父类的方法,所以子类终会有一个int show ( int a , int b ) { return 0;}方法当你再定义一个i ...

突然明白了,脑梗塞了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马