1运行时的多态性和抽象类2主要内容1
面向对象的重要特征:多态性2
运行时的多态性3
设计举例36
1面向对象的重要特征:多态性1
问题引入例子:①每年在加薪的时候,调用所有雇员的服务PayRaise(),包括行政人员
②行政人员的加薪计算应该与其余雇员不同
Employee(PayRaise())Executive46
1面向对象的重要特征:多态性2
面向对象技术使用什么样的机制处理
每当请求行政人员的该服务时,子类“行政人员”有一个代替雇员的PayRaise方法的方法
尽管这些方法是不同的,但它们完成相同的业务目的,把这种现象称为多态
所调用的方法依赖对象所属的类
1面向对象的重要特征:多态性3
多态性①多态性指同一个消息被不同类型的对象或相同类型的对象接收时产生不同的行为
①通俗地说,多态性是指用一个名字定义不同的函数,这些函数执行不同却类似的接口、多种方法
即用同样的接口访问功能不同的函数,从而实现多态性
1面向对象的重要特征:多态性4
多态性的分类①重载多态性:函数重载和运算符重载②继承多态性:派生类③参数多态性:模板④运行时的多态性:是包含多态性的动态体现⑤强制多态性:类型转换76
2运行时的多态性1
虚函数和运行时的多态性①基本概念虚函数C++语言中,前边标有关键字virtual的成员函数称做虚函数
C++语言实现运行时的多态性的方法是使用虚函数
动态绑定的标记是虚函数标记virtual
2运行时的多态性1
虚函数和运行时的多态性①基本概念运行时的多态性指对一个类层次来说,同样一个成员函数的调用,如果程序中动态确定的对象不同,则调用结果不同
指系统在运行时才具体确定对象所属类层次中的某个类,从而确定外部程序所发消息的匹配对象
运行时的多态性与类的继承和虚函数有关,虚函数允许函数调用与函数体之间的联系在运行时才建立