oc-25-id类型,

/**
 id:万能指针
    能够指向任何OC对象.
id = NSObject *,
 
   id cat = [Cat new];
   [cat jump];
 
   NSObject:是所有类的父类,基类.可以指向任何OC对象.
   id:万能指针,可以指向任何OC对象.
 
   区别:编译器对NSObject做类型检测,但是不对id做类型检测. 
 */

#import <Foundation/Foundation.h>
#import "Cat.h"
#import "Animal.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
       
        NSObject *c = [Cat new];
        [(Cat *)c jump];
        
        // id能够指向任何OC对象
        id cat = [Cat new];
        [cat jump];
    }
    return 0;
}
void test1(){
    // 下面代码无法运行成功,因为动物没有跳的行为.
    Animal *ani = [Animal new];
    [(Cat *)ani jump];
}
原文地址:https://www.cnblogs.com/yaowen/p/5311817.html