联系:可以给一个类拓展新的方法,或修改已有的方法
区别:1、继承修改的方法不会对父类原方法产生影响;类别修改的方法相当于替换了原有方法。
2、以viewController举例,继承一个viewController相当于建立一个新的页面;而给一个viewController添加类别用于增加或修改原viewcontroller上的方法。
3、类别支持开发人员针对自己构建的类,把相关的方法分组到多个单独的文件中,对于大型而复杂的类,这有助于提高可维护性,并简化单个源文件的管理。
4、针对系统提供的一些类,例如:NSString,NSArray,NSNumber等类,系统本身不提倡使用继承取拓展方法,因为这些类内部实现对继承有所限制,所以最后使用类别的方法进行拓展。
5、理论上类别不能增加新属性。
网友评论