四 多态性与虚函数
1.多态性
多态性:对同一的消息,不同对象有不同的响应方式。
多态性分两种:静态多态性 和 动态多态性。
静态多态性
是通过函数的重载
实现的,在程序编译时
系统就能决定要调用的是哪个函数,也称编译时的多态性。
动态多态性
是通过虚函数
实现的,在程序运行过程中
才动态地确定操作所针对的对象。
- 坐公交车前确定了路线就好比静态多态性,而临时决定路线就好比动态多态性。
2.虚函数
在类的继承层次结构中,若派生类和基类存在成员函数相同的情况,编译系统按照同名覆盖的原则决定调用的对象。
虚函数:在基类声明函数是虚拟的,并不是实际存在的函数,然后在派生类中才正式定义此函数。
虚函数的作用是:允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数
。(非虚函数,指向基类的指针可以指向派生类,但只能引用派生类中继承的基类成员)
(1)虚函数定义
定义虚函数:
class Student
{
public:
virtual void