2018-05-25
2018-05-25 本文已影响0人
helloyue
在ios中,给类添加方法有两种方式:继承和类别。
1. 继承
继承时面向对象的三大特性之一,子类会继承父类的所有方法和属性。
2 类别
类别(其实我更喜欢翻译为分类)是oc的特性,可以在不改变原类及继承父类的前提下,实现对类方法的扩展。
既然继承和类别都可以扩展类方法,那类别存在的理由是什么呢?
1. 不改变原类的条件下,想类添加方法,这点继承做不到。
2. 可以把相关的方法分组到多个单独的文件中,便于管理(“分类”)。
这样是很方便的,所以可以很多项目都可以看大分类的使用。
当然,分类也有他的局限:如果扩展方法名和原类名相同,则会覆盖掉原类的方法,这是要注意的,还一个是分类无法扩展类的属性。