没有多态的不是真正的面向对象,是基于面向对象
- 几个概念
纯虚函数:没有实现,没有函数体。子类继承并实现。
抽象基类:拥有纯虚函数的类,不能构建对象,不能实例化。提供通用接口,用子类实现这些接口
派生类:继承自基类或父类
基类指针:基类对象
派生类指针:派生类对象
引用:类型名&
int a=12
int& r = a;
r=99
r引用了目标对象a,并修改了a的值
- 多态
多态语句:指向基类的指针,调用基类和派生类都有的同名虚函数
多态:派生类指针自动转化为基类指针,用一个指向基类的指针分别指向基类对象和派生类对象,两次调用。
- 多态表现形式
多态表现形式1
派生类的指针可以赋给基类指针
基类指针调用基类和派生类的同名虚函数时:如果指针指向基类对象,被调基类;如果指针指向派生类对象,被调派生类的虚函数。
多态表现形式2
派生类对象可以赋给基类引用
基类引用调用基类和派生类的同名虚函数时:如果引用引用的是基类对象,被调基类;如果引用引用的是派生类对象,被调派生类的虚函数。
- 多态作用
多态作用:面向对象设计中使用多态,增强程序可扩充性,程序需要修改或增加功能时,需要改动和增加的代码较少。