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 */