多态:
多态按字面的意思就是多种形态,相同的方法调用,但是有不同的实现方式。多态性可以简单地概括为“一个接口,多种方法”。C++有两种多态形式:
- 静态多态
- 动态多态
静态多态(静态绑定):也称为编译期间的多态,编译器在编译期间完成的,编译器根据函数实参的类型(可能会进行隐式类型转换),可推断出要调用那个函数,如果有对应的函数就调用该函数,否则出现编译错误。
静态多态有两种实现方式:
函数重载:包括普通函数的重载和成员函数的重载
函数模板的使用
动态多态(动态绑定):即运行时的多态,在程序执行期间(非编译期)判断所引用对象的实际类型,根据其实际类型调用相应的方法。
1.通过基类类型的引用或者指针调用虚函数
2.必须是虚函数(派生类一定要重写基类中的虚函数)
首先搞清楚这个对象的类型:
- 静态类型:对象声明时的类型,编译时确定
- 动态类型:目前所指对象的类型,运行时确定
重载:
重载定义:在