lijifeng

导航

黑马程序员——OC语言 三大特性之继承

                                                        (以下内容是对黑马苹果入学视频的个人知识点总结)

三大特性之继承

(一)继承的基本用法

  先建立个Animal再用Dog继承前面一个,可以拥有前面所有属性

@interface Animal : NSObject
{
    int _age;
    double _weight;
}

- (void)setAge:(int)age;
- (int)age;

- (void)setWeight:(double)weight;
- (double)weight;
@end
@interface Dog : Animal
@end

 1.重写:子类重新实现父类中的某个方法,覆盖父类以前的做法

 2.注意

1>子类方法和属性的访问过程:如果子类没有,就去访问父类的

2>父类被继承了还是能照常使用的

3>父类的静态方法

4> 画继承结构图,从子类抽取到父类

5>NSObject的引出:全部OC类的最终父类,包含了一些常用方法,比如+new

(二)继承的专业术语

1>父类\超类  superclass

2>子类  subclass\subclasses

(三)继承的细节

1>单继承

2>子类和父类不能有相同的成员变量

3>方法的重写

 super关键字

super的作用

1>直接调用父类中的某个方法

2>super处在对象方法中,那么就会调用父类的对象方法

3>super处在类方法中,那么就会调用父类的类方法

4>使用场合:子类重写父类的方法时想保留父类的一些行为

(四)继承的好处

1>不改变原来模型的基础上,拓充方法

2> 建立了类与类之间的联系

3>抽取了公共代码

4>坏处:耦合性强

(五)继承的使用场合

1>它的所有属性都是你想要的,一般就继承

2>它的部分属性是你想要的,可以抽取出另一个父类

/*
 僵尸
 
 跳跃僵尸、舞王僵尸、铁桶僵尸
 */
#import <Foundation/Foundation.h>
// 僵尸
@interface Zoombie : NSObject
- (void)walk;

+ (void)test;
- (void)test;

@end

@implementation Zoombie
- (void)walk
{
    NSLog(@"往前挪两步******");
}

+ (void)test
{
    NSLog(@"Zoombie+test");
}

- (void)test
{
    NSLog(@"Zoombie-test");
}
@end

// 跳跃僵尸
@interface JumpZoombie : Zoombie
+ (void)haha;
- (void)haha2;
@end


@implementation JumpZoombie

+ (void)haha
{
    [super test];
}

- (void)haha2
{
    [super test];
}

- (void)walk
{
    // 跳两下
    NSLog(@"跳两下");
    
    // 走两下(直接调用父类的walk方法)
    [super walk];
    //NSLog(@"往前挪两步----");

}
@end

int main()
{
    //[JumpZoombie haha];
    JumpZoombie *jz = [JumpZoombie new];
    
    [jz haha2];
    
    return 0;
}

 

posted on 2015-03-23 18:21  lijifeng  阅读(182)  评论(0编辑  收藏  举报