12.1多态性的概念
多态性是面向对象程序设计的一个重要特征。多态性:向不同的对象发送同一消息,不同的对象在接受时会产生不同的行为。
例如函数的重载和运算符重载都是多态现象。
在c++中,多态性的表现形式之一是:具有不同功能的函数可以用同一函数名,这样就可以实现一个用一个函数名调用不同内容的函数。
从系统实现的角度来看,多态性分为两类:静态多态性和动态多态性。
静态多态性:
通过函数重载完成,由函数重载和运算符重载(运算符重载实质上就是函数重载)形成的多态性属于静态多态性。
要求程序在编译时就知道调用函数的全部信息,因此,在程序编译时系统就可以决定要调用哪一个函数。静态多态性又称编译时的多态性。
动态多态性:
不在编译时确定调用的是哪个函数,而在程序运行过程中才动态地确定操作所针对的对象,他又称运行时的多态性。动态多态性是通过虚函数实现的。