多态性与虚函数
(陈维兴教材)
(1)所谓多态性就是不同对象在收到相同的消息时,产生不同的动作。直观的说,多态性是指用一个名字定义不同的函数,这些函数执行不同但又类似的操作,从而可以使用相同的方式来调用这些具有不同功能的同名函数。
(2)多态从实现的角度可以换分为两类:编译时的多态和运行时的多态。编译时的多态是通过静态连编来实现的;运行时的多态是用动态连编来实现的。编译时的多态主要是通过函数重载和运算符重载来实现的;运行时的多态性主要是通过虚函数来实现的。
(3)虚函数提供了一种更为灵活的多态性机制。虚函数允许函数调用和函数体之间的联系在运行时才建立,也就是运行时才决定如何动作,即所谓的动态连编。
(4)纯虚函数是一个在基类中说明的虚函数,它在该基类中没有定义,但要求在它的派生类中根据需要对它进行定义,或仍然说明为纯虚函数。
(5)如果一个类至少有一个纯虚函数,那么就称该类为抽象类。抽象类只能作为其他类的基类,不能建立抽象类的对象。