黑马程序员技术交流社区

标题: 关于多态 [打印本页]

作者: 池莉娘子    时间: 2015-6-30 20:52
标题: 关于多态
多态
      举个例子:有个父类Animal类,子类Dog类,我们定义一个Dog对象可以这样Dog *d = [Dog new];这是很简单的。
但是我们也可以这样定义Animal *a = [Dog new];,这种语法现象就是多态,用语言描述就是父类指针指向子类对象。
对于这种语法Animal *a = [Dog new];我们可以这样通俗的理解:狗是动物。当Dog中重写了一个run方法时,我们去调用他
[a run];由于a指向了Dog对象,所以在调用方法时会动态监测run到底是谁的方法。
     多态的好处是当形参是父类指针时,传值时可以根据需要将不同的子类指针传进去,这样节约代码。举个例子:
void run(Animal *a)
{
       NSLog(@"pao");
}
在调用时:
Dog *d = [Dog new];
void(d);
同样如果还有别的子类如Cat也可以这样操作。
作者: Fighting--BJ    时间: 2015-6-30 22:30
学习学习!加油!支持!




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