多态又称后期绑定,是一种在运行时(just in time)指定方法调用地址的技术。
通常,编译器在编译期就能知道方法的地址,运行时直接加载这个地址上的堆栈代码(.net中指中间代码)就可以了,这被称为静态绑定或前期绑定,虽然很少使用这个术语。
编译器在编译期不能确定方法的地址,而只能在运行时确定的就被称为后期绑定(或动态联编)。例如,对于object类的ToString方法,其方法定义是返回类的名称,但是,调用这个方法却不一定能够返回类的名称(如String类),因为它有可能被派生类重写,多态技术确保运行时能够调用到正确的方法。
关于多态和继承的区别,继承实现了类型重用,而多态实现了方法重用。