黑马程序员技术交流社区

标题: OC小问题 [打印本页]

作者: 啊康    时间: 2014-4-9 20:47
标题: OC小问题
        OC中函数方法名称是不能相同的,在java中只要形参数量不同那么在子类中定义的同名函数就是一个新的函数,那么在OC中子类定义一个和父类同名的函数,只是形参数量不同,那么是否算是重写父类方法呢?如果形参类型不同那么又算不算复写呢?请大神指点迷津!

作者: FlyTrem    时间: 2014-4-9 21:34
oc中对行为方法的命名,有很强的规范性的!
一般在形参前面加上固定的修饰部分,来解释所传形参,那么如果所传的形参不一或类型不同,那么修饰成分也就不同了,那么行为方法名也就不同,不会与父类的方法冲突。如果你强行写的一样,那就是重写,覆盖了父类的方法!
作者: 周宇华    时间: 2014-4-9 22:00
oc中形参数量不同,方法的名字就不同了。如:
  1. - (void)setX:(int)x; // 方法名称:- setX:
  2. -(void)setX:(int)x andY:(int)y; // 方法名称:- setX:andY:
复制代码

而类型不同的话,会将父类方法覆盖。
作者: 李烨    时间: 2014-4-13 22:27
1:子类父类方法名相同,方法参数也相同(包括参数数目相同,参数类型也相同)这样的情况叫做重载。
2:子类父类方法名相同,方法参数也相同(参数数目不同或参数类型不同)这样就形成不同名字的方法。
3:子类父类方法名相同,方法参数也相同(包括参数数目相同,参数类型相同)(注意)如果方法返回值不同,这样会报错。




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