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 24 25 @interface Student : Person
26 @property
int no;
27 @end
28 29 @implementation Student
30 31 - (id)init
32 {
33 34 if (self = [super init])
35 {
36 _no = 1;
37 }
38 return self;
39 }
40 @end
41 42 int main()
43 {
44 45 Student * s= [[Student alloc] init];
46 NSLog(@"no = %d, age = %d", s.no, s.age);
47 48 }
49 50 /*
51
52 A.重寫構(gòu)造方法的目的:為了讓對(duì)象創(chuàng)建出來,成員變量就會(huì)有一些固定的值。
53
54 B.調(diào)用父類構(gòu)造方法的原因:
55 1.一定要調(diào)用super的init方法,初始化父類中的成員變量和屬性。(初始化的其實(shí)是當(dāng)前對(duì)象,只是當(dāng)前對(duì)象有很多成員變量是從父類那繼承過來的。)
56
57 C.重寫構(gòu)造方法的注意點(diǎn):
58 1.先調(diào)用父類構(gòu)造方法。(優(yōu)先調(diào)用super的init的方法,因?yàn)楸举|(zhì)就是初始化當(dāng)前對(duì)象的父類成員變量和屬性,所以返回的是當(dāng)前對(duì)象。)
59 2.再進(jìn)行子類內(nèi)部成員變量的初始化
60 3.總體框架
61 - (id)init
62 {
63 if (self = [super init])
64 {
65 

66 }
67 return self;
68 }
69
70 */