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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 啊康 中级黑马   /  2014-4-9 20:47  /  1000 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        OC中函数方法名称是不能相同的,在java中只要形参数量不同那么在子类中定义的同名函数就是一个新的函数,那么在OC中子类定义一个和父类同名的函数,只是形参数量不同,那么是否算是重写父类方法呢?如果形参类型不同那么又算不算复写呢?请大神指点迷津!

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

3 个回复

倒序浏览
oc中对行为方法的命名,有很强的规范性的!
一般在形参前面加上固定的修饰部分,来解释所传形参,那么如果所传的形参不一或类型不同,那么修饰成分也就不同了,那么行为方法名也就不同,不会与父类的方法冲突。如果你强行写的一样,那就是重写,覆盖了父类的方法!
回复 使用道具 举报
oc中形参数量不同,方法的名字就不同了。如:
  1. - (void)setX:(int)x; // 方法名称:- setX:
  2. -(void)setX:(int)x andY:(int)y; // 方法名称:- setX:andY:
复制代码

而类型不同的话,会将父类方法覆盖。

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
1:子类父类方法名相同,方法参数也相同(包括参数数目相同,参数类型也相同)这样的情况叫做重载。
2:子类父类方法名相同,方法参数也相同(参数数目不同或参数类型不同)这样就形成不同名字的方法。
3:子类父类方法名相同,方法参数也相同(包括参数数目相同,参数类型相同)(注意)如果方法返回值不同,这样会报错。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马