首页 > 代码库 > IOS 语法 - category 与 继承
IOS 语法 - category 与 继承
在Objective-C中,给一个类扩展一个其它方法,有两种实现方式:类别和继承。
1.继承Inherit
这个是面向对象语言都有的一个特性,子类会继承父类的方法和属性。
对于以下情况,无法使用类别,必须使用继承。
- 新扩展的方法与原方法同名,但是还需要使用父类的实现。因为使用类别,会覆盖原类的实现,无法访问到原来的方法。
- 扩展类的属性,这个类别无法做到。
示例代码:
// ViewControllerEx.h@interface ViewControllerEx : UIViewController//自己需要添加的方法@end// ViewControllerEx.m@implementation ViewControllerEx// 方法的实现@end
2.类别category
这是Objective-C语言的一个特性,可以在不改变类名和原来类的实现的前提下,实现对类的方法扩展。Category不能用于向被扩展类添加实例变量。
示例代码:
// 这里有一个约定俗成的规定,类别文件命名时,是原类名+扩展标识名// NSString+ex.h@interface NSString (ex)// 扩展的类回别方法@end// NSString+ex.m@implementation NSString (ex)// 方法的实现@end
3、以下两种方式最后使用类别。
- 针对系统提供的一些类,例如:NSString,NSArray,NSNumber等类,系统本身不提倡使用继承去扩展方法,因为这些类内部实现对继承有所限制,所以最后使用类别来进行方法扩展。
- 类别支持开发人员针对自己构建的类,把相关的方法分组到多个单独的文件中,对于大型而复杂的类,这有助于提高可维护性,并简化单个源文件的管理。
IOS 语法 - category 与 继承
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。