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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wangchao1992 中级黑马   /  2015-8-15 18:08  /  1044 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、什么是多态?
      多态就是某一类事物的多种形态。
       程序中的多态,不同的对象以自己的方式相应相同名称方法的能力称为多态
2、多态的条件:1)、有继承关系,有方法重写
                    2)、父类的声明变量指向子类对象。(代码体现在用 父类类型的指针指向了子类对象,这就是多态)d
3、多态的优点
      多态的主要好处就是简化了编程接口。它容许在类和类之间重用一些习惯的命名
以下示范程序继承关系为
父类                    Animal   
子类             Dog           Cat  
子类   BigYellowDog
//****** 没有使用多态 ******
//        Animal *ani = [Animal new];
//        [ani run];        
//        Dog *d1 = [Dog new];
//        [d1 run];   
//        Cat *cat = [Cat new];
//        [cat run];
//********* 使用多态 ****
        //父类指针 指向了 子类对象
//        Animal *a2 = [Dog new];
//        [a2 run];   //   
//        Animal *a3 = [Cat new];
//        [a3 run];
//        Dog *d4 = [BigYellowDog new];
//        [d4 run];
        
//        Animal *an5 = [BigYellowDog new];
//        [an5 run];
        
        //*********** 多态的使用注意 **********
        Animal *an6 = [Dog new];
        //an6 Animal类型
        //编译的时候会报错
//        [an6 eat];  //报错
        
        //能否执行? (Dog *)an6 把an6强制转化为 Dog类型
        [(Dog *)an6 eat];  //正确的
        
        
        //下面的用法是错误的
        Animal *a8 = [Animal new];
//        [a8 eat];  //不可以,错误的用法
        //骗编译器
        [(Dog *)a8 eat];

6 个回复

倒序浏览
加油努力。
回复 使用道具 举报
还没学到这,不过刚转到OC感觉好吃力
回复 使用道具 举报
飓风少年 发表于 2015-8-15 21:09
还没学到这,不过刚转到OC感觉好吃力

多看几遍, 边看边记笔记 , 写详细点, 方便后续复习。  加油
回复 使用道具 举报
楼主总结得还可以,继续努力!!!
回复 使用道具 举报
wdcew 发表于 2015-8-15 21:36
楼主总结得还可以,继续努力!!!

一起努力
回复 使用道具 举报
看看了,一起加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马