C++继承和多态机制详解
需积分: 3 177 浏览量
更新于2024-09-20
收藏 54KB DOC 举报
继承和多态
继承是面向对象编程语言中的一种机制,它允许一个类继承另一个类的属性和方法,从而提高程序的可复用性。继承的主要特点是:子类可以继承父类的所有成员变量和成员函数,子类可以对父类的成员变量和成员函数进行重写和扩展。
在继承中,需要注意两个重要的规则:
1. 如果类A和类B毫不相关,不可以为了使B的功能更多些而让B继承A的功能。这是因为继承关系应该建立在逻辑上的,而不是为了获取更多的功能。
2. 如果类B有必要使用A的功能,则需要分两种情况考虑:(1)若在逻辑上B是A的“一种”(akindof),则允许B继承A的功能。例如,男人(Man)是人(Human)的一种,男孩(Boy)是男人的一种。那么类Man可以从类Human派生,类Boy可以从类Man派生。(2)若在逻辑上A是B的“一部分”(apart of),则不允许B继承A的功能,而是要用A和其它东西组合出B。
多态是面向对象编程语言中的一种机制,它允许将派生类的对象当作基类的对象使用。多态的主要特点是:可以将一个基类的指针指向一个派生类的对象,从而实现了多种类型的对象可以被当作同一种类型的对象来使用。
C++语言中使用关键字virtual来声明一个函数为虚函数,派生类的虚函数将覆盖(override)基类对应的虚函数的功能。多态可以大大提高程序的可复用性和可扩充性。
结合“抽象基类”和“多态”有如下突出优点:
(1)应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。这一招叫“以不变应万变”,可以大大提高程序的可复用性(这是接口设计的复用,而不是代码实现的复用)。
(2)派生类的功能可以被基类指针引用,这叫向后兼容,可以提高程序的可扩充性和可维护性。以前写的程序可以被将来写的程序调用不足为奇,但是将来写的程序可以被以前写的程序调用那可了不起。
在Java语言中,多态可以通过接口和实现类来实现。例如:
public interface Parent(){
public void simpleCall();
}
public class Child_A implements Parent{
public void simpleCall(){
//具体的实现细节;
}
}
public class Child_B implements Parent{
public void simpleCall(){
//具体的实现细节;
}
}
//当然还可以有其他的实现类来实现多态。
继承和多态是面向对象编程语言中两个非常重要的机制,它们可以提高程序的可复用性和可扩充性,但需要正确地使用它们,以免出现问题。
2022-06-11 上传
2022-06-11 上传
2021-09-19 上传
2012-04-08 上传
2021-09-30 上传
2012-10-31 上传
2021-08-16 上传
2024-05-12 上传
xingjiren
- 粉丝: 7
- 资源: 46
最新资源
- NIST REFPROP问题反馈与解决方案存储库
- 掌握LeetCode习题的系统开源答案
- ctop:实现汉字按首字母拼音分类排序的PHP工具
- 微信小程序课程学习——投资融资类产品说明
- Matlab犯罪模拟器开发:探索《当蛮力失败》犯罪惩罚模型
- Java网上招聘系统实战项目源码及部署教程
- OneSky APIPHP5库:PHP5.1及以上版本的API集成
- 实时监控MySQL导入进度的bash脚本技巧
- 使用MATLAB开发交流电压脉冲生成控制系统
- ESP32安全OTA更新:原生API与WebSocket加密传输
- Sonic-Sharp: 基于《刺猬索尼克》的开源C#游戏引擎
- Java文章发布系统源码及部署教程
- CQUPT Python课程代码资源完整分享
- 易语言实现获取目录尺寸的Scripting.FileSystemObject对象方法
- Excel宾果卡生成器:自定义和打印多张卡片
- 使用HALCON实现图像二维码自动读取与解码