2007 IT salary benchmarks in Asia

本文对比了接口和抽象类在面向对象编程中的作用与区别,包括它们的使用场景、继承特性及其实现方式。
 

作者PeterXu  来源:Blog.CSDN  Blog: http://blog.csdn.net/peterreg/
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。本文地址:http://blog.csdn.net/peterreg/archive/2008/04/03/2248643.aspx

接口和抽象类是面向对象语言(C++/C#/JAVA等)提供的一种抽象和封装机制,在某种情况下,抽象类和接口之间可以互用,但从语言和技术角度来分析,两者之间既有相同也有不同。两者在软件架构和设计模式中有着相当重要的作用,扮演着重要的角色。

相同:

1. 两者都是一种抽象机制,都不能创建具体的对象,都要通过继承来实现它的方法

2. OO的基础,在软件层次和设计模式上有大量的应用

 不同:

1. 抽象类描述的是一种"is a"的关系,即派生类是一种基类或抽象类
    接口则表示一种契约,表明类具有什么功能,是一种"Can do"的关系

2. 抽象类既可以有没实现的抽象成员,也可以有具体的成员
    接口只是一种抽象,没有具体的实现

3. 抽象类不支持回调
    接口支持回调

4. 抽象类只支持单重继承
    接口支持多重继承,一个类只能派生于一个基类,但可以实现多个接口

在具体的编程中,基于“面向接口编程”的理念,我们一般采用抽象类实现接口,实体类派生于抽象类。
在我的前几篇文章中基本上都可以看到接口的抽象类的应用。

实践中领悟理论是最好的方法!



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2248643


本资源提供了一套基于CAN总线的UDS(Unified Diagnostic Services)诊断服务协议栈的C语言源代码。该代码专为汽车电子设计而开发,适用于STM32F4xx系列单片机,并在实际工程中验证通过。代码基于ucosII系统搭建的测试环境,可移植到任何采用C语言编程的项目中进行调试,如TBOX、OBD、域控制器等产品。功能概述该源码涵盖了UDS诊断服务协议中的多项功能,具体包括:诊断会话控制:0x10ECU复位:0x11清除诊断信息:0x14读取故障码信息:0x19通过ID读数据:0x22安全访问:0x27通讯控制:0x28通过ID写数据:0x2E例行程序控制:0x31请求下载:0x34数据传输:0x36退出传输:0x37待机握手:0x3E控制DTC的设置:0x85此外,代码中还定义了以下变量用于状态管理:u16 UDS_diagnose_pattern:诊断回话状态,1为默认会话状态,2为编程会话状态,3为扩展会话状态。u8 UDS_Safe_access_one:安全访问级别1,0为锁定,1为解锁。u8 UDS_Safe_access_two:安全访问级别2,0为锁定,1为解锁。适用对象本资源适用于汽车电子相关行业的开发人员,特别是那些从事CAN总线通信、UDS诊断服务协议栈开发以及STM32F4xx系列单片机应用的工程师。使用说明环境配置:确保开发环境支持STM32F4xx系列单片机,并已配置好ucosII系统。代码移植:将提供的源代码集成到您的项目中,并根据实际需求进行必要的修改和调试。功能测试:通过CAN总线发送相应的诊断请求,验证各功能模块的正确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值