[Objective-c 基础 - 2.3] 继承、组合

A.继承的实现: is a

1.不允许子类、父类存在相同的成员变量
2.方法调用优先原则:子类调用方法的时候,优先从本类寻找,若无则向上在父类中寻找
3.重写:子类重新实现父类的方法,覆盖父类之前的方法
4.无论对象方法或类方法都可以重写
5.缺点:致使耦合性增强
6.OC只能单继承
 
B.组合的实现: has
1.不使用继承,而是将某个类作为成员变量,就可以使用其成员变量和方法
 
C.super关键字
对象方法和类方法都可以使用super调用父类的方法
复制代码
 1 #import <Foundation/Foundation.h>
 2 
 3 @interface Zombie : NSObject
 4 - (void) walk;
 5 + (void) test;
 6 @end
 7 
 8 @interface JumpZombie : Zombie
 9 - (void) walk;
10 + (void) test;
11 @end
12 
13 @implementation Zombie
14 - (void) walk
15 {
16     NSLog(@"往前挪两步");
17 }
18 
19 + (void) test
20 {
21     NSLog(@"哈哈");
22 }
23 @end
24 
25 @implementation JumpZombie
26 - (void) walk
27 {
28     NSLog(@"跳两下");
29     [super walk];
30 }
31 
32 + (void) test
33 {
34     NSLog(@"呵呵");
35     [super test];
36 }
37 
38 @end
39 
40 
41 int main()
42 {
43     JumpZombie *jz = [JumpZombie new];
44     [jz walk];
45     [JumpZombie test];
46     return 0;
47 }
复制代码

 

posted @ 2015-05-13 19:52  *新星月-倪新生*  阅读(160)  评论(0编辑  收藏  举报