OC 多态的运行 学习笔记
来源:互联网 发布:js回调函数原理 编辑:程序博客网 时间:2024/06/05 06:46
多态的概念
不同的对象以自己的方法相应父类同名的方法,这就是多态
体现:
父类指针指向子类对象
多态的条件
1.有继承关系
2.有方法重写(子类把父类的同名方法重写)
课堂练习的代码
Animal *ani = [Animal new];//对象爷爷 [ani run]; Dog *d1 = [Dog new];//正常使用,爸爸 [d1 run]; Cat *cat = [Cat new];//正常使用,叔叔 [cat run]; //使用多态是,父类指针指向子类对象 Animal *a2 = [Dog new];//可以指向子类,也可以指向孙子类,例如声明一个其他的类,是Dog的子类的时候就可以,运行的时候结果是孙子类的方法,这就是多态,都是爷爷类型的指针但是运行的方法却是不同儿子孙子的方法 [a2 run];
多态:当子类的方法和父类的方法不是同名的情况,以上代码是同名的情况(编译器能找到run方法,因为声明的Animal类型里面有run方法).但是当子类有自己独特的方法时候
声明一个多态
例如:Animal *a3 = [Dog new];
这时候回编译错误,eat是Dog 的私有方法。但是这时候a3又是指向Dog类的,所以地址是可以访问过去的,这时候可以这样写
[a3 eat]错误
[(Dog *)a3 eat]; 这样就是正确的了,把a3强制转换成Dog类型,这时候就可以运行eat Dog类的私有方法了
注意编译器找声明类型的.h方法有没有。运行的时候找实际new出来的地址
0 0
- OC 多态的运行 学习笔记
- OC学习笔记06--OC运行时中类的加载、初始化 和方法调用机制,SEL类型
- OC(Objective-C)学习笔记(二)--终端运行多OC程序
- OC的学习笔记汇总
- OC学习笔记之多态
- OC学习笔记之多态
- 关于OC运行时机制 多态的理解
- OC学习笔记之OC类的设计练习实战
- OC学习笔记之OC的核心语法
- OC学习笔记之OC对象的内存管理
- OC学习笔记之OC对象的内存管理二
- OC学习笔记20--OC中singleton的实现
- OC学习笔记(9)Object-C多态的使用
- 学习笔记:OC的数据类型 block 使用
- OC学习笔记:NSString的用法
- OC学习笔记:常用的结构体
- [OC学习笔记]协议的一些规则
- OC学习笔记之类的封装
- sprintf和printf http://blog.sina.com.cn/s/blog_44f08a12010007pi.html
- 台湾国立大学机器学习基石.听课笔记(第三讲): 机器学习的分类
- 天天的招聘,天天的解聘!民营医疗你的人才在哪?
- 图片裁剪类
- window.onload()和$(document).ready()区别
- OC 多态的运行 学习笔记
- 文件的编码
- 整体代码缩进
- uvalive(NIM博弈)
- Android TextView 支持BBCode的显示
- WebStorm 注册码
- NYOJ 865 解题报告
- 《混合存储综述》 总结
- 可变参数函数