c++ 多态
-
多态:同一事物表现出不同事物的能力,即向不同对象发送同一消息,不同的对象在接收时会产生不同的行为。
- 多态性是指用一个名字,定义不同的函数,这些函数执行不同但又类似的操作,这样就可以使用同一个函数名调用不同内容的函数。
- 在程序设计中经常使用多态性,例如:运算符,使用运算符+,可以实现整型数、浮点型数、双精度等类型之间的加法。
- 重载实现编译时多态,虚函数(覆盖)实现运行时多态。
- 重载:允许存在多个同名函数,而这些函数的参数表不同
- 覆盖:指子类重写父类的虚函数
- 多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单一句话:允许将子类类型的指针赋值给父类类型的指针
-
多态的定义和实现
-
抽象类
- 在虚函数的后面加上 = 0,则这个函数为纯虚函数,包含纯虚函数的类叫做抽象类(接口类),抽象类不能实例化出对象。派生类继承后也不能实例化处对象,只有重写纯虚函数,派生类才能实例化出对象。纯虚函数规范了派生类必须重写。
-
动态绑定与静态绑定
- 1.静态绑定:在程序编译期间确定了程序的行为,也称为静态多态,例如:函数重载,重载实现编译时多态。
- 2.动态绑定:在程序运行期间,调用具体的函数,也称为动态多态,虚函数实现运行时多态。
参考文献:
|