oc-20-多态
2016-03-23 13:01
309 查看
/** 为什么父类可以访问子类继承自父类的方法,但是无法访问子类独有的方法? 1.编译器编译时: 编译器在编译时,只检查指针变量的类型,确定该指针变量类型里面有下面调用的方法,如果有该方法,编译器就认为,是正确,可以编译通过. 2.运行时:会动态监测对象的真实类型.然后,调用对象自己的方法. 父类指针指向子类对象的这种形式,叫做多态. 当父类想要访问子类特有的方法时:强制类型转换. */ #import <Foundation/Foundation.h> #import "Cat.h" #import "Girl.h" #import "Dog.h" #import "Mouse.h" int main(int argc, const char * argv[]) { @autoreleasepool { Animal *c = [Cat new]; [(Cat *)c jump]; Animal *a = [Animal new];//错误 [(Cat *)a jump]; } return 0; } // 多态的应用 void test1() { // 父类指针指向子类对象,编译的时候是左边Animal类型运行的时候是右边Cat类型。 Animal *c1 = [Cat new]; // 1.父类能否调用子类继承自父类的方法 [c1 eat]; // 2.父类能否调用子类独有的方法,强制类型转换. // [c1 jump]; }
相关文章推荐
- Qt教程 第二章:调用退出
- springframework(十二)AOP之aop标签的支持
- [LeetCode] Find the Celebrity 寻找名人
- java本地缓存
- CSS元素的定位
- HTML网页禁止鼠标操作脚本
- PHP学习笔记 -- 面向对象的核心概念
- JAVA中native方法调用,之后再补充
- Android获取Manifest中<meta-data>元素的值
- springframework(十一)AOP之自动代理
- 【杂谈】数学,计算机视觉,图形图像处理
- Python 数据结构与算法——二叉搜索树的实现
- springframework(十)AOP之Pointcut、Advisor
- java【学习笔记(一)】初始类
- Linux 内核分析五
- 架构设计最佳实践之Don’t Repeat Yourself
- Qt教程 第一章:Hello, World!
- 2016,除了 DevOps,企业还应该知道 CMDB!
- [译]一次负责任的披露:为什么我可以黑Facebook所有帐号
- Codeforces 285E Positions in Permutations (dp + 容斥)