分类:
属性:只能增加方法,不能增加实例变量
优点:用于扩展原有类的方法,便于分布式开发。
缺点:重名方法无法解决。编译器不知道调用哪个方法
格式:
@interface classname(xxx)
@end
协议:
属性:类似c++的接口,规定了一些方法,遵守者必须要实现,@optional修饰除外
优点:继承扩展比较好用,规定了必须实现的方法,有利于多态实现
缺点:无
格式:
@protocol xxx
@end
使用:
@interface classname:<xxx>
@end
其他:协议指令:@protocol判断一个类是否支持某个协议(conformsToProtocol:@protocol(xxx))