开发者社区> 问答> 正文

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

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

展开
收起
爵霸 2016-03-06 10:04:52 2740 0
3 条回答
写回答
取消 提交回答
  • 宇宙虽有其起源,却没有终结。无限。 星球虽也有起源,却因其自身之力走向毁灭。有限。

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

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

    - (void)printObj:(NSObject *)obj {
        [obj description];
    }
    2019-07-17 18:54:06
    赞同 展开评论 打赏
  • OC本身是不支持多态特性的。如果要间接实现多态,有两种方案:
    ①通过Protocol间接实现多态,写一个中间的Manager,进行消息的转发;
    ②通过NSProxy消息转发,实现多继承

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

    2019-07-17 18:54:05
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载