ios 继承和CateCategory

在iOS开发中,当需要扩展已有类的功能时,可以选择继承或Category。继承允许子类继承父类的属性和方法,并可以重写或添加新特性。Category则提供横向扩展,仅能添加方法。在考虑使用时,继承适合于需要重写方法或添加属性的场景,而Category适用于团队协作中避免修改原有类的情况。两者各有优势,根据实际需求选择。
摘要由CSDN通过智能技术生成

        我们在写ios程序的时候,常常发现所用到的那个类里面的方法或属性不够用,这时候我们就想往那个类里面添加一些我们想要的属性或方法。有两种方法可是实现:分别是:  1、继承 

 2、Category类目


这时有人会问:什么时候使用继承?什么时候使用Category?他们两个谁优谁劣?

说到这个问题,我们需要了解继承和Category的特性


继承:在继承中有两个概念,子类和父类(或者说子类和超类),子类和父类的关系   是,   父类拥有的方法和属子类都拥有,全部继承过来(换句话说,父类是一代产品,   功能少,而子类是第二代升级产品,有一代产品的功能之外,还额外拥有新升级    的功能。在程序中体现为,子类可以使用父类的方法和属性,    而父类不可以使     用子类的方法和属性,父类可以出现的地方,子类都可以出现)。因为继承的这个   特性,我们可以在子类里添加或重写我们所额外需要的   属性和方法(也就是二代           产品的升级功能,在一代产品的基础上修改和添加);

继承的工作方式:1、方法调度,程序运行时,先从子类里面找方法,子类里面       没有,就去父类里面找,可以一直找到最初的父类(所以子        类的方法优先级比父类高)

          2、属性调度,程序运行时,先从父类里面找方法,父类里面       没有,再去子类里面找,所以子类的的属性最好不要覆盖        父类的属性


   使用场景:希望重写原有类的方法,希望添加属性时使用继承,比如自定义UI控       件,在继承上修改添加以达到自己想要的控件



Category:如果说继承的关系的纵向扩展添加,那么Category就是横向的扩展添加(在原  有的类里再添加方法)。Category只能添加方法,不能添加属性,而且使用  Category时尽量不要修改覆盖原有类的方法。

                  使用场景:多个人团队开发一个类的时候使用;


对于最后一个谁优谁劣的问题,我们只能就使用场景而论,各有所长





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值