类目:为现有的类添加新方法
1.需要添加该类的新方法,但是不能继承该类的情况下
类目使用需要注意的问题:
1.类目里面不能添加实例变量,但是类目可以声明属性,但必须实现set get 方法,在这两个实现方法里面依然不能使用自己添加的实例方法
2.类目里添加的方法不能和原类中的方法重名,否则会导致覆盖
3.一个类可以添加多个类目,但是类目名和方法名不能重复
4.类目中的方法可以成为原始类的一部分,和原始类方法级别相同,可以被子类继承
类目的创建与使用:
File:是类目的名称
File Type:是类型,这是选择Category
Class:是填写所要添加类目的类
//添加后的类目名
//在.h文件里添加方法-(void)hi;在.m文件实现
在main文件里调用,记得导入类目文件
这样,类目就创建并实现好
隐藏类目(延展):类目的私有方法
在需要添加类目的类的.m文件里面#import "类名"下面添加
//这一块就是延展(匿名类目)
@interface Student()
//建议把实例变量放在延展里面
{
NSInteger _age;
}//解决需要添加私有方法,但是又不能声明在头文件声明的矛盾
@property(nonatomic,strong)NSString* name;
//在这里声明私有方法
-(void)printHello;
@end
这样一个匿名类目就完成了,需要注意的是在main的文件里可以printHello方法不能使用,printHello是私有方法,不能给其他类使用,只能由匿名类目的类去调用
协议:是一套标准,这个标准里声明了很多方法,但是补关心具体这些方法是怎么实现的,具体的实现是由遵循这个协议的类去完成
OC里面继承关系是单继承,但有时候我们需要使用多继承,这时候我们就可以使用协议
File:协议名字
File Type:类型(选择Protocol)
//创建Student类,
Student.h文件
Student.m
实现协议里面的方法
在main文件里面实现
这样,一个简单的协议就已经实现