说下个人的见解:如果要在深入一点的话,可以理解为在编译时可以是任何类型,而在运行的时候,将会检测其真实的类型,也就是常说的运行时机制(runtime)
例如 你可以用 id 来指向任意以一个内存地址,该内存地址所对应的存储空间可以是任意类型的对象,在编译的时候不会由任何问题,而在程序运行的时候将会检测对象的真实类型
这个就是多态的体现
id obj = [NSArray array]; //指向一个数组
运行时检测其真是类型是数组
id obj = [[Person alloc] init]; 指向一个Person对象
运行时检测其真是类型是Person类
当然这只是举例都是伪代码,具体的你可以上网查下资料 |