首页 / 知识
早期装订和晚期装订之间有什么区别?
2023-04-12 04:21:00

What is the difference between Early and Late Binding?早期和晚期绑定之间有什么区别? 简短的答案是,早期(或静态)绑定是指编译时绑定,而后期(或动态)绑定是指运行时绑定(例如,当您使用反射时)。 在编译语言中,区别是明显的。 Java:
在第一个示例中,编译器可以在编译时完成各种巧妙的工作。第二,您只希望希望使用该方法的人做到负责任。 (当然,较新的JVM支持 另一个好处是,IDE可以热链接到类定义,因为它是在方法中声明的。对create_something(Foo)的调用可能与方法定义相去甚远,如果您正在查看方法定义,那么可能很高兴看到实现。 后期绑定的主要优点是,它使控制反转等操作以及多态性和鸭子类型的某些其他用法(如果您的语言支持)更加容易。 直接取自http://word.mvps.org/fAQs/InterDev/EarlyvsLateBinding.htm
Herbert Schildt C ++书中类似但更详细的答案: 早期绑定是指在编译时发生的事件。本质上,当在编译时知道调用函数所需的所有信息时,就会发生早期绑定。 (换句话说,早期绑定意味着在编译过程中绑定了对象和函数调用。)早期绑定的示例包括普通函数调用(包括标准库函数),重载函数调用和重载运算符。早期绑定的主要优点是效率。因为调用函数所需的所有信息都是在编译时确定的,所以这些类型的函数调用非常快。
早期绑定的反义词是后期绑定。后期绑定是指 在解释语言中,差异稍微有些微妙。 红宝石:
因为(通常)不对Ruby进行编译,所以没有编译器可以完成漂亮的前期工作。 JRuby的增长意味着这些天编译了更多的Ruby,从而使其行为更像上面的Java。 IDE的问题仍然存在:像Eclipse这样的平台可以在您对类定义进行硬编码时查找类定义,但如果将其交给调用者则无法查找。 控制反转在Ruby中并不十分流行,可能是因为它具有极高的运行时灵活性,但是Rails充分利用了后期绑定来减少启动应用程序所需的配置量。
当我们具有相同的方法名称且具有不同的行为时,编译时多态也称为重载,早期绑定或静态绑定。 通过实现相同方法的多个原型,将在其中发生不同的行为。 早期绑定是指程序的首次编译。
这将打印出来
在早期绑定中,编译器将可以访问所有方法
因此,method1(来自子级-早期绑定)将在运行时被method1来自成人覆盖(后期绑定) 注意,如果child没有method1,则main中的代码将无法编译。 |
最新内容
相关内容
python怎么重新编译python
python怎么重新编译python,培训,环境变量,命令,里面,以上,文件,更多,内容,第一步,解压Python-3.6.4.tgz,tar-zxvfPython-3.6.4.tgz第二步,进入python用什么编译器
python用什么编译器,代码,平台,工具,环境,培训,灵活,时间,管理,系统,智能,Python的学习过程少不了IDE或者代码编辑器,或者集成的开发编辑器(IDpython需要编译吗
python需要编译吗,代码,平台,做好,培训,体系,语言,机器码,目标,厨师,下次,python是编译型语言还是解释型语言?回答这个问题前,应该先弄清楚什python调用函数和打印函数的区别
python调用函数和打印函数的区别,培训,函数,区别,变量,实例,分配,以上,参数,东西,更多,python调用函数和打印函数的区别1、当你调用一个返回pythonpython是如何编译运行的
pythonpython是如何编译运行的,培训,代码,工作,程序,字节,语言,链接,机器,时候,问题,这里的解释执行是相对于编译执行而言的。我们都知道,使用pythonTKinter的绑定方法
pythonTKinter的绑定方法,培训,方法,全局,实例,参数,事件,快捷键,以上,操作,更多,python中TKinter的绑定方法1、bind_all全局绑定,默认是全局python代码中编译是什么
python代码中编译是什么,代码,分析,培训,词法,用户,都会,结尾,实例,例子,关键字,python代码中编译是什么说明1、在执行Python代码时,在Pythonpython方法的绑定和未绑定
python方法的绑定和未绑定,培训,方法,对象,实例,函数,参数,定义,静态,以上,不是,python方法的绑定和未绑定1、说明未绑定对象的方法:无self参关于.net:Image UriSource和数据绑
关于.net:Image UriSource和数据绑定,关于.net:Image UriSource和数据绑定,绑定,图像,自定义对象,列表,Image UriSource and Data Bind如何配置tomcat绑定到单个IP地址(
如何配置tomcat绑定到单个IP地址(本地主机)而不是所有地址?,如何配置tomcat绑定到单个IP地址(本地主机)而不是所有地址?,地址,配置,绑关于.net:将Windows Forms属性绑定
关于.net:将Windows Forms属性绑定到C#中的ApplicationSettings的最佳方法?,关于.net:将Windows Forms属性绑定到C#中的ApplicationSe关于数据库设计:需要模式以动态搜索
关于数据库设计:需要模式以动态搜索多个sql表,关于数据库设计:需要模式以动态搜索多个sql表,搜索,模式,动态,用于,Need Pattern for dy