f(sixleaves) = sixleaves

重剑无锋 大巧不工

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  95 随笔 :: 0 文章 :: 7 评论 :: 0 Trackbacks
 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 
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.重写构造方法的目的:为了让对象创建出来,成员变量就会有一些固定的值。
53 
54 B.调用父类构造方法的原因:
55     1.一定要调用super的init方法,初始化父类中的成员变量和属性。(初始化的其实是当前对象,只是当前对象有很多成员变量是从父类那继承过来的。)
56 
57 C.重写构造方法的注意点:
58     1.先调用父类构造方法。(优先调用super的init的方法,因为本质就是初始化当前对象的父类成员变量和属性,所以返回的是当前对象。)
59     2.再进行子类内部成员变量的初始化
60     3.总体框架
61     - (id)init
62     {
63         if (self = [super init])
64         {
65             
66         }
67         return self;
68     }
69 
70 */
posted on 2015-05-02 11:01 swp 阅读(217) 评论(0)  编辑 收藏 引用 所属分类: objective-c

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理