举个例子,当我们要定义猫和狗两个对象的时候,狗和猫都具有体重、毛色、品种、年龄等属性以及吃、叫、跑、跳等方法。那么我们在声明和实现这两个类对象的时候我们就会需要两段重复很多的代码,而且若有更多的相同的特征,重复的代码会更多,那么我们以后若是要改代码的时候就需要修改两处或者多处的代码,一旦有一处没有修改就会出现各种各样奇怪的错误,所以在这里我们要使用继承的特征。继承,如表面特征,继承自父类的一些特性。
比如说,我们定义了一个名位animal 的父类,他具有具有体重、毛色、品种、年龄等属性以及吃、叫、跑、跳等方法,那么我们在定义猫..等其他子类的时候就不需要去重复的定义这些特性,当使用类继承的时候会继承来自父类的相应特征。
@interface Animal : NSObject
{
NSString * _name;
}
-(void)setName:(NSString * )name;
-(void)eat:(NSString *)foodname;
@end
@implementation Animal
-(void)setName:(NSString * )name{
_name = name;
}
-(void)eat:(NSString *)foodname{
NSLog(@"%@吃食物%@",_name,foodname);
}
@end
#pragma mark Dog
@interface Dog : Animal
-(void)kanmen;
@end
@implementation Dog
-(void)kanmen{
NSLog(@"wang,wang...");
}
-(void)eat:(NSString *)foodname{
NSLog(@"%@吃点。。。%@",_name,foodname);
}
@end
#pragma mark Cat
@interface Cat : Animal
-(void)zhualaoshu;
@end
@implementation Cat
-(void)zhualaoshu{
NSLog(@"miao,miao...");
}
@end
那么我们看猫和狗这两个类,都是继承自animal类,都拥有了animal类的_name属性,那么我们在实例化一个dog类的时候我们可以不用在dog里写_name变量,而去使用这个变量,相同方法也是同理。
继承的语法:@interface Dog : Animal
在进行类的声明的时候在本类名后边冒号的后边则是本类的父类名,若没有父类则需要填写位NSObjecj,NSObject是所有类的基类。