关键区别——早期绑定与后期绑定
早期绑定和后期绑定是与多态性相关的两个概念。早期绑定发生在编译时,后期绑定发生在运行时。早期绑定和后期绑定的关键区别在于早期绑定使用类信息来解析方法调用,而后期绑定使用对象来解析方法调用。
Java等编程语言支持面向对象编程(OOP)。它是一种允许使用对象构造程序或软件的范例。软件中有多个对象。这些对象彼此连接并使用方法传递消息。每个物体都有特性和行为。特征由属性或属性描述。这些行为是用方法描述的。对象学生可以具有诸如姓名、年龄等特征,并用属性表示。目标学生可以有学习、阅读等行为,并用方法来表征。OOP的一个主要支柱是多态性。它允许一个对象以多种方式表现。早期绑定和后期绑定是多态性中的两个概念。重载方法是使用早期绑定绑定绑定的。重写的方法使用后期绑定进行绑定。
目录
1.概述和主要区别
2. 什么是早期绑定
3. 什么是延迟绑定
4. 早期和晚期绑定的相似性
5. 并排比较-早期与晚期以表格形式装订
6. 摘要
什么是早期绑定(early binding)?
在早期绑定中,类信息用于解析方法调用。早期绑定发生在编译时。它也被称为静态绑定。在这个过程中,绑定发生在程序实际运行之前。重载方法是使用早期绑定绑定绑定的。参考以下程序。
根据上面的程序,Calculation类包含一个接受两个整数值的add方法和一个接受两个双精度值的add方法。在主程序中,将创建类型为Calculation的对象。当向add方法传递两个整数时,它将调用接受两个整数的add方法。当向add方法传递两个double值时,它将调用与两个double值对应的方法。这个绑定过程发生在编译时。所有需要的信息在运行前就知道了,提高了程序的效率和执行速度。
什么是后期装订(late binding)?
在后期绑定中,对象用于解析方法调用。延迟绑定发生在运行时。它也被称为动态绑定。在这个过程中,绑定发生在程序执行时。重写的方法使用后期绑定进行绑定。参考以下程序。
根据上面的程序,类形状有一个绘制方法。类圆类和三角形类扩展了形状类。因此,这两个类可以继承Shape类的属性和方法。Shape类是基类。类是派生类和圆类。类圆和类三角形也有自己的实现的draw方法。因此,Shape类中的draw方法被派生类的draw方法重写。
在主程序中,创建一个Shape类型的参考变量s。在编译时,编译器将只引用基类draw方法。在运行时,将执行不同的绘制方法。首先,s将指向Shape类型的对象。因此,调用了Shape类的draw方法。然后s将指向Circle类型的对象,并调用Circle类的draw方法。最后,s将指向Triangle类型的对象,并调用Triangle类中的draw方法。方法的调用取决于对象。因此,该对象用于解决后期绑定中的方法调用。绑定所需的信息是在运行时提供的,因此与早期绑定相比,执行速度较慢。
什么是早期绑定与后期绑定的相似性(the similarity between early binding and late binding)?
- 早期绑定和后期绑定都与多态性有关,多态性是OOP的支柱。
早期绑定(early binding)和后期装订(late binding)的区别
早期绑定与后期绑定 | |
使用类信息来解析在编译时发生的方法调用的过程称为早期绑定。 | 使用对象来解析在运行时发生的方法调用的过程称为后期绑定。 |
装订时间 | |
早期绑定发生在编译时。 | 延迟绑定发生在运行时。 |
功能 | |
早期绑定使用类信息来解析方法调用。 | 后期绑定使用对象来解析方法调用。 |
同义词 | |
早期绑定也称为静态绑定。。 | 后期绑定也称为动态绑定。 |
发生 | |
重载方法是使用早期绑定绑定绑定的。 | 重写的方法使用后期绑定进行绑定。 |
执行速度 | |
早期绑定的执行速度更快。 | 后期绑定的执行速度较低。 |
总结 - 早期的(early) vs. 后期装订(late binding)
OOP通常用于软件开发。OOP的一个主要支柱是多态性。早绑定和晚绑定都与此相关。早期绑定发生在编译时,后期绑定发生在运行时。在方法重载中,使用早期绑定进行绑定。在方法重写中,使用后期绑定进行绑定。早期绑定和后期绑定的区别在于,早期绑定使用类信息来解析方法调用,而后期绑定使用对象来解析方法调用。