#import <Foundation/Foundation.h>
#pragma mark -
#pragma mark 人类的创建
//声明
@interface YYPerson : NSObject
@property NSString *name;
@property int age;
- (void)sayHi;
@end
//实现
@implementation YYPerson
- (void)sayHi
{
NSLog(@"大家好!我叫%@,我今年%d岁了!", _name, _age);
}
@end
#pragma mark -
int main(int argc, const char * argv[]) {
//创建人类对象
YYPerson *xiaoming = [YYPerson new];
//赋值属性
xiaoming.name = @"小明";
xiaoming.age = 18;
//调用方法
[xiaoming sayHi];
//创建人类对象(父类指针指向子类对象)
NSObject *xiaohua = [YYPerson new];
[(YYPerson *)xiaohua setName:@"小花"];//NSObject指针的局限性,只能使用中括弧调用方法,不能使用点语法.
[(YYPerson *)xiaohua setAge:20];
//当NSObject指针指向子类对象的时候,如果要调用子类对象独有的方法,就必须做类型转换.否则就会报错.
[(YYPerson *)xiaohua sayHi];
return 0;
}