1 #import <Foundation/Foundation.h>
2 // 需求:每个Person对象一创建出来,他得_age都是10
3 4 @interface Person : NSObject
5 @property
int age;
6 @end
7 8 @implementation Person
9 10 // override
11 - (id)init
12 {
13 14 if (self = [super init]) {
15 16 _age = 10;
17 }
18 return self;
19 20 }
21 @end
22 23 int main()
24 {
25 26 Person *p = [[Person alloc] init];
27 NSLog(@"_age = %d", p.age);
28 29 }
30 31 /*
32 敲代码的快捷键:要敲出会重写对象已经存在的方法,不用写类型,只要敲出-后,再敲出方法名的一部分,就会自动补全
33
34 A.调用父类构造方法的原因:
35 1.一定要调用super的init方法,初始化父类中的成员变量和属性。(初始化的其实是当前对象,只是当前对象有很多成员变量是从父类那继承过来的。)
36
37 B.子类构造方法中调用父类构造方法返回值的解释:
38 1.调用super的init的方法,因为本质就是初始化当前对象的父类成员变量和属性,所以返回的是当前对象。
39
40 C.重写构造方法的框架:
41 1.调用super init并将返回值赋给self指针。
42 2.总体框架
43 - (id)init
44 {
45 if (self = [super init])
46 {
47
48 }
49 return self;
50 }
51 */