动态绑定:在动态绑定中,编译器不决定要调用的方法。覆盖是动态绑定的完美示例。在覆盖父类和子类时具有相同的方法。动态绑定也称为后期绑定。
消息传递:
就计算机而言,消息传递是进程之间的通信。它是面向对象编程和并行编程中使用的一种通信形式。Java中的消息传递就像发送一个对象,即从一个线程到另一个线程的消息。当线程没有共享内存并且无法共享监视器或信号量或任何其他共享变量进行通信时使用它。例如:生产者和消费者的例子,同样生产者会生产什么,消费者只能消费那个。我们主要使用Queue来实现线程之间的通信。
下面来看看动态绑定和消息传递之间的区别:
动态绑定 | 消息传递 |
---|---|
绑定是指将过程调用链接到响应调用而执行的代码。 | 涉及通信的编程过程称为消息传递。 |
动态绑定允许在运行时使用相同的对象执行不同的代码。 | 动态绑定允许开发对象之间的通信。 |
动态绑定的使用允许在运行时使用相同的对象执行不同的代码。 | 动态绑定涉及三个基本步骤:创建类;创建对象;建立对象之间的通信。 |
动态绑定是将过程调用链接到仅在运行时执行的相关代码的方法。 | 消息传递是面向对象编程中对象之间交换消息的方法。 |
在程序执行之前,与该过程相关的代码是未知的。这个过程称为后期绑定。 | 消息传递涉及对象的名称、函数的名称和要发送的信息。 |
与多态引用关联的函数调用取决于该引用的动态类型。 | 只要对象还活着,与对象的通信是可行的。 |
在动态绑定中,只有在运行时才会调用与当前引用下的对象匹配的代码。 | 对象的消息是执行过程的请求,因此调用接收对象中生成所需结果的函数。 |
简而言之,动态绑定发生在运行时。 | 消息传递发生在两个进程之间。 |
动态绑定也称为动态调度、后期绑定或运行时绑定。 | 消息传递也称为消息交换。 |
基于对象的编程不支持动态绑定。 | 基于对象的编程支持消息传递。 |
面向对象编程支持动态绑定。 | 面向对象编程也支持消息传递。 |
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264011.html