Objective_C与C++有些许相似,C++里的继承,覆盖,隐藏在obj_c里一样适用,但是它的重载却没有c++里灵活。
objective_C里只能以参数个数不同进行函数的重载,不能以类型做为重载的条件。
如:
- (void)requestTTT:(NSString*)waitress; - (void)requestTTT:(BOOL*)waitress ;在编译的时候就会出错
只要其中一个方法加一个参数就会成功,如下:
- (void)requestTTT:(NSString*)waitress; - (void)requestTTT:(BOOL*)waitress withName:(NSString *)name;其实严格的说,这是两个不同的方法,分别是 requestTTT:与requestTTT:withName:
因此得出结论:objective_C没有函数重载功能。
参考资料:
http://www.cppblog.com/kesalin/archive/2011/08/30/137494.html
http://mobile.51cto.com/iphone-278510.htm
objective_c 2.0还是有很多新功能,特别是它的run time. 有poseas, swizze,比如我们可以运行时修改父类的方法。
参看资料:
https://github.com/rentzsch/jrswizzle
http://www.cocoadev.com/index.pl?MethodSwizzling
http://www.devdiv.com/article-1644-1.html