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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张中付 中级黑马   /  2015-8-24 22:39  /  1265 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

OC中有没有方法重载?如果没有,那是怎么做到区别下面的:
-(void)setAge:(int )age:(NSString *)name;
-(void)setAge:(int)age andName:(NSString *)name;

15 个回复

倒序浏览
没有重载,只有重写
回复 使用道具 举报
Jo_ 发表于 2015-8-24 23:51
没有重载,只有重写

为什么子类继承父类时,可以直接重写父类方法,不加什么关键字。。。
回复 使用道具 举报
Jo_ 发表于 2015-8-24 23:51
没有重载,只有重写

那上面两行代码怎么区分方法名的呀
回复 使用道具 举报
这两行代码的方法名应该是不同的吧。
回复 使用道具 举报
OC中的重载应该是指参数个数不同,但是返回类型后面的名字相同
回复 使用道具 举报
应该是重写吧!
回复 使用道具 举报
看看视频就知道了,函数名不是setAge,而是 setAge:  :,setAge: andName:,所以不是重载,而且C#没有方法的重载。
回复 使用道具 举报
Eil.tea 发表于 2015-8-25 10:22
看看视频就知道了,函数名不是setAge,而是 setAge:  :,setAge: andName:,所以不是重载,而且C#没有方法的 ...

恩恩,方法名不一样,OC没有重载
回复 使用道具 举报
smilejoke 发表于 2015-8-25 08:50
这两行代码的方法名应该是不同的吧。

是不一样,方法名不一样所以说oc没有重载
回复 使用道具 举报
就相当于名字一样,但是性别不一样一个道理,,,没有方法重载的,视频讲义里专门讲到这一点
回复 使用道具 举报
有方法重载  可以直接重写方法就行了
回复 使用道具 举报
oc没有方法重载,有类方法,可以对原来的类的方法重写,也可以新增一些方法。还有非正式协议,可以重写NSObject,和foundation里边的方法。
而继承的方法重写只是一种较简单的方法重写。
-(void)setAge:(int )age:(NSString *)name;
-(void)setAge:(int)age andName:(NSString *)name
这两者的方法名不一样,在调用的时候完全能够体现出来。
一个是setAge::
另外一个是setAge: andName:注意冒号也算
而且前面的加减也要看清楚,一个是类方法,一个是对象方法
回复 使用道具 举报
庞佳星 发表于 2015-8-25 16:43
oc没有方法重载,有类方法,可以对原来的类的方法重写,也可以新增一些方法。还有非正式协议,可以重写NSOb ...

很清楚,你是第11期的吗
回复 使用道具 举报
Jo_ 中级黑马 2015-8-25 22:38:18
15#
张中付 发表于 2015-8-25 08:42
那上面两行代码怎么区分方法名的呀

方法名是不同的:
setAge:  :
setAge: andName:
回复 使用道具 举报
OC中没有重载!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马