一.类目spa
指向已知的类中添加新方法,不破坏封装性。已知类能够是自定义的类和系统的类。3d
1.类目的实现和声明blog
建一个学生类,并增长类目io
(1).声明(是在Student+Working.h中)变量
必须引入原类,这里是Studnet类。方法
(2) .实现(是在Student+Working.m中)im
注意引入。d3
2.类目的使用协议
i.不能再类目中添加实例变量db
j.能够为一个类添加多个类目,但类目名和方法名不能重复
k.不能随意重写类目的方法
3.类目的局限性
i.若是在类目中重写父类的方法可能致使super消息的断裂,由于在类目中的方法优先级高于父类。
j.没法在在类目中添加实例变量。
二.延展
经过在本身的类的实现文件中添加添加类目来声明私有方法,延展至关于一个匿名的类目。
1.声明
在studnet.m文件中,在@implementation之上,方法是不须要实现的
延展不提供名称表示必须实现,提供名称能够不实现。
2.实现
在studnet.m文件中,在@implementation和@end中实现方法。
以上在main.m中调用并打印的结果以下:
三.协议
声明一些方法,让别的类来实现,也能够为类增长方法
1.声明一个协议
在文件中
2.在导入协议的头文件
3.在文件中采用协议
4.并在文件中实现协议中的方法