分类,扩展和继承的区别
来源:互联网 发布:关于网络直播的作文800 编辑:程序博客网 时间:2024/05/29 07:37
1:分类和扩展的区别
<1>分类:声明的时候使用格式中括号必须要有分类名称,创建完成后有两个文件夹(Person+action.h Person+action.m文件)
@interface 类名 (分类名称)/* 方法声明*/@end@implementation 类名(分类名称)/* 方法实现*/@end扩展:声明的时候使用格式中括号没有东西,创建完成后只有Person_action方法
interface Person ()/*方法声明或者成员变量*/@end<2>:分类只能扩充方法,不能扩展属性和成员变量;如果分类中声明了一个属性,那么分类只会生成这个属性的set、get方法声明,也就是不会有实现,所以如果使用该属性,程序将会崩溃
扩展中声明的方法和成员变量是私有的,只有在扩展类中能调用,外部的类无法调用
例如:在分类中设置成员变量:
#import "Person.h"@interface Person (action)@property(copy,nonatomic)NSString *testCategory;@end在类别中设置成员变量:
#import "Person.h"@interface Person ()//注意括号中没有类名称,这是与分类category的不同之处//为Person类添加成员变量@property(copy,nonatomic)NSString *testExtension;@end在Person类中初始化方法中给两个成员变量赋值,运行,显示程序崩溃:
从程序崩溃的原因可以知道分类是不能声明成员变量,设置属性的;
2:分类和继承的区别
<1>分类增加的这些方法会成为类类型的一部分;
继承增加的方法不会成为父类的一部分
<2>分类增加的方法如果与类的方法同名,会覆盖原类的方法,因为Category的优先级更高
继承中子类也会覆盖父类的方法
0 0
- 分类,扩展和继承的区别
- 谈谈iOS中Categories(分类)、Extensions(类扩展)和继承的区别
- IOS 分类(category)、扩展(Extension)和继承(inheritance)的区别?
- 谈谈iOS中Categories(分类)、Extensions(类扩展)和继承的区别
- 关于iOS 分类和扩展的区别
- iOS-分类和扩展的区别和联系
- 分类与继承的区别
- IOS分类和扩展的解析及其区别
- ios分类(Categories)和类扩展(Extensions)的区别
- 横向看分类,扩展,协议的区别
- 自定义类、类扩展、分类的区别
- iOS - 类扩展与分类的区别
- iOS - 类扩展与分类的区别
- iOS - 类扩展与分类的区别
- 理解分类(category)和类扩展(extension),扩展或继承像UIViewController经常用的类的变量和方法
- iOS分类(Category)和类扩展(Extension)的简单区别
- 选择器的基本分类和扩展选择器
- ios继承和分类的使用
- java处理事务的方法
- mysqldump备份数据库
- 统计系统的登录信息 并写入到文件中
- 【u006】海战
- text——Android字体工作原理
- 分类,扩展和继承的区别
- AOE关键路径
- js date
- 新浪微博手机端很难成为一个常用APP
- 超线程、多核知识实战,5分钟让你成为CPU专家
- url传递中文字符,特殊危险字符的解决方案
- 【grunt整合版】30分钟学会使用grunt打包前端代码
- PHP 10问——PART 3
- 在python中调用grass的模块