多态
一种事物,多种形态。换言之,对于同一个行为,不同的对象去完成就会产生不同的结果。
多态的构成条件
多态是继承体系中的一个行为,如果要在继承体系中构成多态,需要满足两个条件:
-
必须通过基类的指针or引用调用虚函数
-
被调用的函数必须是虚函数,并且派生类必须要对继承的基类的虚函数进行重写
虚函数
虚函数就是被 virtual
修饰的类成员函数 (这里的 virtual
和虚继承的 virtual
虽然是同一个关键字,但是作用不一样)。
- 任何构造函数之外的非静态函数都可以是虚函数。
- 关键字
virtual
只能出现在类内部的声明语句之前而不能用于类外部的函数定义。 - 如果基类把一个函数声明成虚函数,则该函数在派生类中隐式地也是虚函数。
重写
一般情况下,当派生类中有一个和基类完全相同的虚函数(函数名、返回值、参数