一、类别的作用
类别可以在不获悉、不改变原来的代码的情况下添加新的方法。若与原有方法重名,类别将会覆盖原有的方法。所以当我们在一个大工程中,我们需要在一个已经定义好的类中添加一些新的方法,而不想重写该类,我们可以使用类别对该类扩充新的方法。
类别主要有三个作用:
(1)将类的实现分散到不同的文件或不同的框架中。
(2)创建对私有方法的向前引用。
(3)向对象添加非正式协议。
注:类别只可以扩充方法,不可以扩充成员变量。
二、与继承区别
继承可以增加、修改方法,并且可以增加属性。
三、与扩展区别
category和extensions的不同在于 后者可以添加属性。另外后者添加的方法是必须要实现的。 extensions可以认为是一个私有的Category。