A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#import<Foundation/Foundation.h>

@interface Person :NSObject
@property int age;

@end

@implementation Person


//重写-init方法的作用:让成员变量一创建出来就是什么值,而不是原先父类中默认的0。
//该方法不需要再声明,应为已经在父类NSObject类的声明中声明过了,这里只需要做下重写就可以
重写构造方法的注意点
1.先调用父类的构造方法([super init])
2.再进行当前对象内部成员变量的初始化


/*

-(id)init //注意:id类型,表示任何对象都可以调用init,所以返回的类型是不确定的,所以使用id;
{
   //重写构造方法的条件:
   //1.一定要调用super的init方法:初始化父类中声明的一些成员变量和其它属性
//[super init]有时候返回的对象不一定跟self一样,为了保证代码严谨,把返回值赋值给self  
//解释:因为父类的所有东西都被子类继承,所以要想初始化Person的成员变量,就必须把父类的成员变量初始化。
  self = [super init];
  //2如果对象初始化成功,才有必要进行当前成员变量的初始化
  if(self !=nil)
{
  //当前初始化成功;
_age = 10;
}


2 个回复

倒序浏览
同求,相同的疑惑
回复 使用道具 举报
将用父类对象方法init后得到的初始化对象赋值给当前对象,我是这么理解的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马