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];
多态就是某一类事物的多种形态。
程序中的多态,不同的对象以自己的方式相应相同名称方法的能力称为多态
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-自动释放池、多态、协议
- 专题复习
- 自动化测试陷阱
- k近邻matlab图示
- 3、传统线程同步与通信--生产消费例子
- 各自的特点:
- 单体测试书的检查要点
- OC中的动态绑定与多态问题
- Struts2利用token防止表单重复提交
- Struts2笔记——利用token防止表单重复提交
- python attr相关
- NetAnalyzer笔记 之 二. 简单的协议分析
- 自动化测试体系整体解决方案探讨
- 一个简单的函数适配器的例子
- 通信基础
- 单体测试1
- 权限修饰符
- ubuntu下编译php扩展的时候报缺少pcre解决办法
- bootstrap-helloworld
- UICollectionView 集合视图基本使用