分类和扩展的区别:分类是(分类名称) 而扩展()是匿名的,在分类中只能添加方法,不能定义实力变量,但是在扩展中可以定义实例变量和实例方法。 分类定义的方法接口,在相应的分类实现部分进行实现,而扩展定义的实力变量和实例方法都是私有的,只是提供一个接口,实现部分在主类的@implementation部分进行实现,而且只能在类的区域访问,类的实例对象,不能访问扩展的定义属性和方法。

分类可以覆盖父类的方法,因此不能调用的父类的相应的方法,最好使用子类,子类覆盖父类方法后,还可以[super method] 进行访问父类的方法。

protocol 协议 只是接口,只提供相应的方法,不实现,服从协议的类,要去实现方法。<>

 

类名:继承<protocol>

类名(分类)