黑马程序员技术交流社区

标题: 说说多态~~~请各位指教 [打印本页]

作者: 小叶子    时间: 2014-9-27 11:37
标题: 说说多态~~~请各位指教
什么是多态,为什么要使用多态。
概念:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。简单的说:就是用基类的引用指向子类的对象。
使用原因:向后兼容,提高代码可扩充性和可维护性。
在OC中:
          delegate,protocol配合的观察者模式,是oc中多态的最常见运用方式

多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多态。

在使用多态是,会进行动态检测,以调用真实的对象方法。

多态在代码中的体现即父类指针指向子类对象。

Animal类的声明

Animal类的实现

Dog类继承自Animal类

Dog类的实现

测试程序:

B》——拓展一个新方法

void feed(Animal *c){
        [c eat];
}
当现在我有一个cat,一个dog均继承自Animal这个类,不论我将cat还是dog,都可以传入feed这个方法,而且会正确调用子对象的eat方法。我不用在feed方法的参数中准确定义传入类型为cat或者dog









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2