黑马程序员-OC语言-继承

——- ios培训、ios培训、期待与您交流! ———-
继承的表现

多个类中存在相同属性和行为时,讲这些内容抽取到一个单独的类中(父类),那么多个类无需再定义这些属性和行为了,只要继承单独的那个类就可以了.这种拥有另外一个类的属性和方法的方式成为继承.
如:B继承了A,B就成为子类,A就成为父类,B拥有A中的所有属性和方法.一个父类可以有多个子类去继承他,但是一个子类只能有唯一的一个父类.
作用以及好处:
1.子类可以直接访问父类中的属性和方法.
2.继承的出现提高了代码的复用型.
3.继承的出现让类与类之间产生了关系,提供了多态的前提.
下面通过代码体现

#import 
//父类
@interface Person : NSObject{
    char *_name;//姓名
    double _high;//身高
    double _weight;//体重
}
-(void)run;
+(void)run;
-(void)setName:(char *)name;
@end

@implementation Person
+(void)run{
NSLog(@"父类中的类方法....");
}
-(void)run{

    NSLog(@"%s 跑....",_name);
}
-(void)setName:(char *)name{
    _name=name;
}
@end

//警察继承了Person类就有了Person类的所有属性和方法
@interface Police : Person{  
    char *_qiang;
}
+(void)catchThief;
@end

@implementation Police
+(void)catchThief{//这个是Police中的独有的方法
    NSLog(@"抓小偷...");
}
@end


//小偷
@interface Thief : Person{
    char *_dao;
}
+(void)tou;//这个是Thief独有的方法
@end

@implementation Thief
+(void)tou{
     NSLog(@"偷东西...");
}

@end

int main(){
   Thief *t= [Thief new];
    [t setName:"thief"];//t这个对象使用了SetName这个方法,因为已经继承了Person类了
    Police *p=[Police new];
    [p setName:"police"];//p这个对象使用了SetName这个方法,因为已经继承了Person类了
    //小偷偷东西, 警察跑去抓小偷,小偷跑路
    [Thief tou];
    [p run];
    [Police catchThief];
    [Police run];//这里是用子类的类名调用了一个类方法,这个类方法是从父类中继承的;

    [t run];
    return 0;
}

关于继承的一些思考
1.多个类中如果包含公共的属性的和方法,那么可以使用继承的方法,把这些公共属性和方法封装到一个父类中.
2.子类继承了父类,本质上就是在子类中也写入了父类中的属性和方法.
3.子类想要使用父类中的类方法,用子类的类名直接调用;

你可能感兴趣的:(黑马程序员-OC语言-继承)