有两种多态:
编译时期多态(又叫静态多态):
编译时期的多态是靠重载实现的,根据参数个数,类型和顺序决定的(必须在同一个类中)
运行时的多态(又叫动态多态):
在运行时根据实际情况决定调用函数
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
编译时(compile time)和运行时(run time)
对于面向对象而已,多态分为编译时多态和运行时多态。
其中编辑时多态是静态的,主要是指方法的重载,它是根据参数列表的不同来区分不同的函数,包括参数列表的个数、顺序和参数类型,不能通过返回值来区分重载方法,它们通过编辑之后会变成两个不同的函数,在运行时谈不上多态。所以主要还是看参数列表。
而运行时多态是动态的,它是通过动态绑定(binding)来实现的,也就是我们所说的多态性。