请问基于oc的ios开发,oc的多态性体现在哪?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

请问基于oc的ios开发,oc的多态性体现在哪?

爵霸 2016-03-06 10:04:52 1200

基于oc的ios开发,oc的多态性体现在哪里?举个小例子简单说一下吧

iOS开发
分享到
取消 提交回答
全部回答(3)
  • 世界线跳跃者
    2019-07-17 18:54:06

    多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。

    举例:在开发中你想打印某些对象的内容,来输出对象信息,通过去入参调用description来实现。当实际传入类型是NSObject、UIView、UITableView对象等时,尽管显示类型是NSObject,但还是得到了不同的结果,进而体现了多态。

    - (void)printObj:(NSObject *)obj {
        [obj description];
    }
    0 0
  • 靠谱的小号
    2019-07-17 18:54:05

    OC本身是不支持多态特性的。如果要间接实现多态,有两种方案:
    ①通过Protocol间接实现多态,写一个中间的Manager,进行消息的转发;
    ②通过NSProxy消息转发,实现多继承

    0 0
  • 爵霸
    2019-07-17 18:54:05

    一般来说,多态通过派生一个函数,并且重写其中的方法定义来实现,通过相同的基类类型访问,不同的对象执行不同的代码,如果你编写类库,它比较有用,如果你只是做一个应用,你的代码没有继续被复用的需求,那么就不太用得到。
    参考:http://blog.csdn.net/g5dsk/article/details/6095516

    0 0
添加回答
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题