动态类型是否意味着动态(后期绑定)?

时间:2017-09-30 14:54:09

标签: javascript java c#

AFAIK,所有动态类型语言都使用后期绑定,即方法的名称在编译时没有绑定到类型。而是使用该方法的名称在运行时查找它。是否可以使用动态类型并仍然使用早期绑定?

1 个答案:

答案 0 :(得分:0)

基本上,是的动态类型意味着绑定将在以后发生'在运行时,但反之亦然。您可以在强类型语言中使用反射来实现import java.util.Date; public class DateDemo { public static void main(String args[]) { // Instantiate a Date object Date date = new Date(); // display time and date using toString() System.out.println(date.toString()); } } ,而无需任何动态类型。 甚至更简单,后期绑定也会在运行时解析虚方法调用时发生。 UPD:这实际上是late binding的一个例子,而不是Dynamic dispatch,正如@LearningMath所正确指出的那样

  

是否可以使用动态类型并仍使用早期绑定?

没有。这与#34;动态类型"的定义/含义相矛盾。

相关问题