C++的多态是由两种,一种是静态多态,一种是动态多态。
静态多态的实现原理是通过类的模板去实现。
动态多态常用的由两种。一种是派生类(父子的实现),一种是虚函数(virtual)。
在我看来这两种实际上并不是一种等级,虚函数是派生类中的一种功能。
我们都知道C++的继承是如何实现的,比如 (class a:public b),就说b是a的子类。
工作中常用的动态多态:
1)如果父类中某一个函数是虚函数,那么他子类中的相同的函数也默认为虚函数,不管你是否会添加virtual
2)实例化的对应并不会对虚函数起作用,
3)基类的指针在操作他的多态类对象时,会根据不同的类对象,调用其相应的虚函数
如果是一个成熟的代码。我们会将基类中定义一个虚函数,但并不会去实现它。然后统一使用基类的指针来创建、调用他的子类对象,这样我们就能够用同一个接口去调用不同的模块。