——- ios培训、ios培训、期待与您交流! ———-
继承的表现
多个类中存在相同属性和行为时,讲这些内容抽取到一个单独的类中(父类),那么多个类无需再定义这些属性和行为了,只要继承单独的那个类就可以了.这种拥有另外一个类的属性和方法的方式成为继承.
如:B继承了A,B就成为子类,A就成为父类,B拥有A中的所有属性和方法.一个父类可以有多个子类去继承他,但是一个子类只能有唯一的一个父类.
作用以及好处:
1.子类可以直接访问父类中的属性和方法.
2.继承的出现提高了代码的复用型.
3.继承的出现让类与类之间产生了关系,提供了多态的前提.
下面通过代码体现
#import <Foundation/Foundation.h>
//父类
@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.子类想要使用父类中的类方法,用子类的类名直接调用;