- 多态性就是用一个函数名定义不同的函数;
- 静态多态性。同一个类中的同名函数,定义时在形式参数的个数、顺序、类型方面有所不同,在程序编译时就能根据实际参数与形式参数的匹配情况,确定该类对象究竟调用了哪一个成员函数。静态多态性可以通过函数重载和运算符重载实现;
- 动态多态性。在基类与派生类中存在的同名函数,要求该同名函数的原型在基类和派生类中完全一致,而且是虚函数。在编译时无法确定究竟调用的是哪一个同名函数,只有在程序运行时,通过基类的指针指向基类或派生类对象,或基类的引用代表的是基类或派生类的对象,确定调用的是基类还是派生类中的同名函数;
- 函数重载和运算符重载;
- 虚函数。当基类的指针指向基类对象时调用基类中的同名函数,而指向派生类对象时就调用派生类的同名函数,也就是说究竟执行哪一个类中的同名函数,要等到运行到这条语句时才能决定,这就是实现动态多态性的效果;