A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 池莉娘子 中级黑马   /  2015-6-30 20:52  /  705 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多态
      举个例子:有个父类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也可以这样操作。

1 个回复

倒序浏览
学习学习!加油!支持!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马