类的继承--学习笔记

本文探讨了在面向对象编程中如何通过继承提高代码复用性和减少冗余,以动物类为例,详细介绍了如何定义父类和子类,以及继承机制如何在不同类之间共享属性和方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


举个例子,当我们要定义猫和狗两个对象的时候,狗和猫都具有体重、毛色、品种、年龄等属性以及吃、叫、跑、跳等方法。那么我们在声明和实现这两个类对象的时候我们就会需要两段重复很多的代码,而且若有更多的相同的特征,重复的代码会更多,那么我们以后若是要改代码的时候就需要修改两处或者多处的代码,一旦有一处没有修改就会出现各种各样奇怪的错误,所以在这里我们要使用继承的特征。继承,如表面特征,继承自父类的一些特性。

比如说,我们定义了一个名位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

在进行类的声明的时候在本类名后边冒号的后边则是本类的父类名,若没有父类则需要填写位NSObjecjNSObject是所有类的基类。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值