objective c 学习笔记:分类和协议

分类:

属性:只能增加方法,不能增加实例变量

优点:用于扩展原有类的方法,便于分布式开发。

缺点:重名方法无法解决。编译器不知道调用哪个方法

格式:

@interface classname(xxx)

@end


协议:

属性:类似c++的接口,规定了一些方法,遵守者必须要实现,@optional修饰除外

优点:继承扩展比较好用,规定了必须实现的方法,有利于多态实现

缺点:无

格式:

@protocol xxx

@end

使用:

@interface classname:<xxx>

@end

其他:协议指令:@protocol判断一个类是否支持某个协议(conformsToProtocol:@protocol(xxx))


   

你可能感兴趣的:(c,c,扩展,interface,编译器,objective)