Objective-C类的初始化

Objective-C中实现类的初始化要先重载父类的init方法:

1.首先调用[super init]使用父类的方法进行初始化,将对象赋给self

2.如果self不为nil即父类初始化成功,接着进行本类的初始化

3.返回self给调用者

@implementation Test
-(id)init
{
    if(self = [super init])
    {
        //本类的初始化代码
        //..........
    }
    return self;
   
}
@end

虚方法

1.调用时不看指针看对象,称为虚方法

2.OC中所有的方法都是虚方法

3.父类的指针可以指向子类对象

有两个类
card1.h
@interface Card1 : NSObject
{
    int money;
}
@property (nonatomic,assign) int money;

-(void)printAccount;

card2.h
@interface Card2 : Card1

- (void)printAccount;
@end

在main.m中

Card2 *card2=[[Card2 alloc] init];
card2.money=1000;
Card1 *card1=card2;
[card1 printAccount];

//父类指针指向子类对象,实际上仍然时调用子类card2中的打印方法,因为card1指针指向card2对象

相关推荐