C++继承和多态机制详解
需积分: 3 100 浏览量
更新于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(){
//具体的实现细节;
}
}
//当然还可以有其他的实现类来实现多态。
继承和多态是面向对象编程语言中两个非常重要的机制,它们可以提高程序的可复用性和可扩充性,但需要正确地使用它们,以免出现问题。
点击了解资源详情
147 浏览量
102 浏览量
140 浏览量
2022-06-11 上传
2021-09-19 上传
183 浏览量
101 浏览量

xingjiren
- 粉丝: 8
最新资源
- Win7系统下的一键式笔记本显示器关闭解决方案
- 免费替代Visio的流程图软件:DiaPortable
- Polymer 2.0封装的LineUp.js交互式数据可视化库
- Kotlin编写的Linux Shell工具Kash:强大而优雅的命令行体验
- 开源海军贸易模拟《OpenPatrician》重现中世纪北海繁荣
- Oracle 11g 32位客户端安装与链接指南
- 创造js实现的色彩识别小游戏「看你有多色」
- 构建Mortal Kombat Toasty展示组件:Stencil技术揭秘
- 仿驱动之家触屏版手机wap硬件网站模板源码
- babel-plugin-inferno:JSX转InfernoJS vNode插件指南
- 软件开发中编码规范的重要性与命名原则
- 免费进销存软件的两个月试用体验
- 树莓派从A到Z的Linux开发完全指南
- 晚霞天空盒资源下载 - 美丽实用的360度全景贴图
- perfandpubtools:MATLAB性能分析与发布工具集
- WPF圆饼图控件源代码分享:轻量级实现