在oc语法中,同java一样不支持类的多继承,java利用接口,内部类很好的解决了多继承问题,而c++支持多继承,则是初级开发者极为诟病的问题.在oc中,协议的出现便是类似于c++中的抽象基类多继承.
协议是多个类共享方法列表,如果一个类遵守某个协议,必须实现协议中可选方法以外的所有方法.
@protocol NSCopying
-(id) copyWithZone:(NSZone *)zone;
@end
如果遵守NSCopying协议 必须实现copyWithZone方法
ex: @interface Test:NSObject <NSCopying>