黑马程序员——OC语言基础——面向对象三大特性之继承

本文详细介绍了Objective-C中的继承概念,通过实例展示了如何利用继承减少代码重复,提高代码复用性和降低维护成本。同时,文章也提到了在继承过程中需要注意的方法重写,以适应特定子类的需求。

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

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

继续上一篇博文回顾了OC中封装的相关知识后,这次我继续复习了OC面向对象思想的三大特性之一,继承的相关知识。

同样需要说明由于之前学习过Java的原因,所以对面向对象的封装这个特性算是比较,可能博文梳理的不是太透彻。

若是没有接触过编程语言的话,可能对待这块新知识,会有自己梳理的比较系统的笔记吧。

以下开始正题:

继承,顾名思义是可以将父类的属性和方法继承给子类,从而减少大量的重复代码和工作量。在这一概念上OC和Java保持了一致。

下面是一段代码说明:

最好从实际角度出发,首先我抽象出一个电脑类作为父类:

#import <Foundation/Foundation.h>

#pragma mark 电脑类
@interface Computer : NSObject
{
    float _Size;    //屏幕尺寸
    int _Price;     //价格
    float _weight;  //重量
    
}

-(void)startup;     //开机
-(void)show;        //显示主机信息
-(void)shutdown;    //关机
-(void)reboot;      //重启
@end



之后我再抽象出一个笔记本电脑类,它继承自电脑类:

#import <Foundation/Foundation.h>
#import "Computer.h"

#pragma mark 笔记本电脑类
@interface Laptop : Computer
{
    float battery;  //电池电量
}

-(void)showBattery;     //显示电量
@end

这时,虽然看似笔记本电脑类中,并没有电脑类中的任何属性和方法。

但是若我们实例化一个Laptop对象,并调用开机方法。这时可以发现Laptop实例的对象成功执行了开机方法。

而这种直接继承父类方法,不需要书写任何额外代码的方式,我就将它理解为面向对象的一大特性——继承。


那么接下来就有一些问题了,我们知道大部分情况下,由于笔记本轻便快捷的特性,他的开机过程会非常快,这时我们再使用从电脑上继承过来的开机方法就不合适了。

这时我们可以将父类的开机方法,复制到Laptop类中并在Laptop类的实现中进行针对性的编码。这叫做方法的重写。


那么关于继承的相关知识就先整理到这,下一篇中的多态才是面向对象中真正的主角哦,拭目以待吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值