第八章 多态性
8.1多态性概述
多态:指同样的消息被不同类型的对象接收时导致不同的行为
消息:指对类的成员函数的调用
分为四类:重载多态、强制多态、包含多态、参数多态
多态从实现角度分为两类:编译时的多态和运行时的多态
绑定:计算机程序自身彼此关联的过程
1. 静态绑定:绑定工作在编译连接阶段完成(早期绑定/前绑定)[重载,强制 和 参数多态]
2. 动态绑定:**********运行 **********晚期*****后******[包含多态]
8.3虚函数
虚函数是动态绑定的基础,是非静态的成员函数。 (本质:覆盖)
Virtual只用来说明类声明中的原型,不能用在函数实现时
具有继承性:基类中声明了虚函数,派生类中无论是否说明,同原型函数都自动为虚函数。
调用方式:通过 基类指针 或 引用 ,执行时会根据指针指向的对象的类,而在派生类中,给出函数的具体实现。
8.4纯虚函数与抽象类
纯虚函数:只给出函数的原型(在基类中说明的虚函数),来规定整个类族的统一接口形式,而在派生类中,给出函数的具体实现。
抽象类:带有纯虚函数的类。
主要作用:通过它为一个类族建立一个公共的接口,使它们能有效地发挥多态特性。
注意:
·抽象类只能作为基类来使用
·不能声明抽象类的对象
·可以定义抽象类的指针或引用