您的位置:首页 > 其它

OC-多态使用介绍

2015-08-27 23:02 375 查看
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];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  OC多态