1 #import <Foundation/Foundation.h>
2
3 @interface Person : NSObject
4 @property (assign, nonatomic) int age;
5 - (void)run;
6 + (void)test;
7 @end
8
9 @implementation Person
10
11 - (void)run
12 {
13
14 NSLog(@"Person---Run");
15 }
16
17 + (void)test
18 {
19 NSLog(@"Person +test");
20 }
21 @end
22
23 @interface Student : Person
24 {
25 int _no;
26 //int _age;
27 }
28
29 + (void)test2;
30 @end
31 @implementation Student
32 - (void)run
33 {
34 NSLog(@"Student----Run");
35 }
36
37 + (void)test
38 {
39 NSLog(@"Student+test");
40 }
41
42 + (void)test2
43 {
44
45 [self test];
46 }
47 @end
48 int main() {
49
50 Student * s = [Student new];
51 [s run];
52 [Student test2];
53 return 0;
54 }
55
56 /*
57 继承的概念:如果A继承自B,那么A就含有B的所有成员变量和方法,这就叫继承。
58
59 继承的作用:代码重用,建立关系。
60
61 继承的编程思想:
62 1.当两个类拥有相同属性和方法时候,就可以将相同的东西抽取到一个父类中。
63 2.当A类拥有B类中的部分属性和方法时候,可考虑让B类继承A类。(这种场合不能乱用)
64
65 继承使用的注意事项:
66 1.父类要写在子类前面。
67 2.OC中不允许子类和父类有相同名称的成员变量。
68 3.子类能重写父类的方法(override,类方法、对象方法都能override)。或者实现父类只声明没有实现的方法。
69 4.当调用某个方法(类方法、对象方法)时候有限去当前类中找,当当前类找不到,再取父类中。
70
71
72 继承的坏处:
73 1.代码耦合性太强。
74
75
76 组合关系:(has a)
77 1.当B类是A类的一部分。可以用组合关系。
78
79 如何区分继承和组合
80 1.当类A是类B,则可以用继承。
81 2.当类A拥有类B,则可以用组合。
82 */