1 #import <Foundation/Foundation.h>
2 // 需求:每個(gè)Person對(duì)象一創(chuàng)建出來,他得_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 敲代碼的快捷鍵:要敲出會(huì)重寫對(duì)象已經(jīng)存在的方法,不用寫類型,只要敲出-后,再敲出方法名的一部分,就會(huì)自動(dòng)補(bǔ)全
33
34 A.調(diào)用父類構(gòu)造方法的原因:
35 1.一定要調(diào)用super的init方法,初始化父類中的成員變量和屬性。(初始化的其實(shí)是當(dāng)前對(duì)象,只是當(dāng)前對(duì)象有很多成員變量是從父類那繼承過來的。)
36
37 B.子類構(gòu)造方法中調(diào)用父類構(gòu)造方法返回值的解釋:
38 1.調(diào)用super的init的方法,因?yàn)楸举|(zhì)就是初始化當(dāng)前對(duì)象的父類成員變量和屬性,所以返回的是當(dāng)前對(duì)象。
39
40 C.重寫構(gòu)造方法的框架:
41 1.調(diào)用super init并將返回值賦給self指針。
42 2.總體框架
43 - (id)init
44 {
45 if (self = [super init])
46 {
47 

48 }
49 return self;
50 }
51 */