多态的理论基础

1、联编是指一个程序模块、代码之间互相关联的过程。

2、静态联编(static binding),是程序的匹配、连接在编译阶段实现,也称为早期匹配。

    重载函数使用静态联编。

3、动态联编是指程序联编推迟到运行时进行,所以又称为晚期联编(迟绑定)。

switch 语句和 if 语句是动态联编的例子。

函数重写时,如果不加virtual ,编译器直接将同一类型的对象转化为基类对象,从而只调用基类的方法,属于静态联编。

反之,用virtua修饰l某一个方法后,编译时会对此方法进行特殊处理,执行时根据实际的对象类型决定调用哪一个方法,这就是动态联编。

动态联编是实现多态的内在核心。