多态性是面性对象程序设计语言中除了数据抽象和继承外的第三个基本性质。
多态性的实现依赖于虚函数的使用,在面向对象的程序设计中,不用虚函数就等于没有接触到面向对象程序设计。在讲到虚函数的时候不得不说捆绑(binding)。绑定即是把函数体育函数调用相联系。绑定有两种,一种是早绑定,一种是晚绑定。早绑定一般用于过程型语言,c语言中就只有一种绑定方式。晚绑定发生在运行期间,因此在早期是不知道实际的对象类型。
为了实现虚函数,我们可以再某个类的函数定义时在其前面添加virtual关键字。使用了virtual关键字后表明该函数是虚函数,于是继承了该类的继承类中同名函数可以有着不同的实现,在随后使用该函数时不同类型对象就有不同表现形式。