//
// main.m
// id
//
// Created by hhg on 15-6-2.
// Copyright (c) 2015年 hhg. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Person.h"
#import "Dog.h"
#import "Cat.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *p = [Person alloc];
Dog *d = [Dog alloc];
Cat *c = [Cat alloc];
// id 是指針類型,可以指向任意對象,不需要強制裝換,可以直接使用
id myId; // 用id類型聲明一個myID泛型指針變量
myId = p; //
[myId setName:@"張勝男"]; // myId指向p,調用setName是調用p的方法;
NSLog(@"name : %@", [myId name]);
myId = d;
[myId setAge:];
NSLog(@"age:%li", [myId age]);
myId = c;
[myId setColor:@"白色"];
NSLog(@"顔色:%@", [myId color]);
// 問題:如何知道id類型指向指向對象是屬于哪個類?
// [對象 class] 傳回類名;
NSLog(@"%@", [p class]);
NSLog(@"%@", [d class]);
NSLog(@"%@", [c class]);
NSLog(@"%@", [myId class]);
}
return ;
}