黑马程序员技术交流社区

标题: 关于父子类的问题,可能忽略了某些基础知识,这点还不... [打印本页]

作者: rose_xiaomei    时间: 2015-5-12 20:50
标题: 关于父子类的问题,可能忽略了某些基础知识,这点还不...
本帖最后由 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的子类中?希望给一个明白的解释,


作者: LPStone    时间: 2015-5-12 20:55
本帖最后由 LPStone 于 2015-5-12 20:58 编辑

因为子类继承父类的方法,所以子类终会有一个int show ( int a , int b ) { return 0;}方法当你再定义一个int show ( int a , int b ) { return 0;}后,当调用show这个方法时会产生调用不明确的错误,因为这两个方法既不覆盖,也不重载。

作者: pvbj0314    时间: 2015-5-12 21:27
重载函数要求,子类的函数返回类型可以是父类函数返回类型及其子类,因为int和short都是基本类型,并非对象,不存在父类和子类的关系。所以不行。
重载函数要求,覆盖方法的访问权限要比被覆盖方法的访问权限更大或相同。所以两个函数的访问权限没有覆盖上的问题。
作者: 我爱吃橙子    时间: 2015-5-12 22:11
子类的方法既没有重写父类方法,也没有重载,报的错误叫做“重复定义”
作者: guoyangpeng    时间: 2015-5-12 22:50
学习了,菜鸟走过!
作者: yihuihua    时间: 2015-5-12 23:42
如果被对象调用,对象就不知道调用哪一个了
作者: rose_xiaomei    时间: 2015-5-13 22:16
LPStone 发表于 2015-5-12 20:55
因为子类继承父类的方法,所以子类终会有一个int show ( int a , int b ) { return 0;}方法当你再定义一个i ...

突然明白了,脑梗塞了。




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