黑马程序员技术交流社区
标题:
OC-id类型和 NSObject类型
[打印本页]
作者:
wangchao1992
时间:
2015-8-17 16:25
标题:
OC-id类型和 NSObject类型
1、NSObject 是所有类的基类(父类)。
利用多态原理 NSObject可以指向任何 对象。
NSObject *obj = [Animal new];
[(Animal*)obj run]; //动物在跑
NSObject *obj2 = [Dog new]; //狗在跑
[(Dog*)obj2 run];
2、id类型
id是一种通用的对象类型,它可以用来存储属于任何类的对象。 也可以理解为万能指针
注意 在id的定义中, 已经包好了 * 号。id 指针只能指向 os的对象
id类型应用场景
Animal *ani = [Animal new];
id obj3;// 声明id类型
obj3 = ani;
[obj3 run]; //动物在跑
Dog *dog = [Dog new];
obj3 =dog;
[obj3 run]; //狗在跑
动态类型和静态类型
动态类型: 程序直到执行时才能确定所属的类。 id属于动态类型
静态类型:将一个变量定义为特定类的对象时,使用的是静态形态 例如 Animal *ani = [Animal new];
instancetype和id的异同.png
(88.79 KB, 下载次数: 11)
下载附件
2015-8-17 16:23 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2