比较类似术语之间的差异

之间的区别

家 / 技术 / 它 / 编程 /静态结合和动态结合之间的差异

静态结合和动态结合之间的差异

2018年2月1日发表Lithmee

关键区别 - 静态结合与动态结合

编程语言,例如爪哇和C#支持面向对象的编程(OOP)。它允许使用对象。软件系统或程序中有许多对象。这些对象有属性和方法。属性描述了特征。方法描述对象可以执行的动作。数据通过方法通过对象传递。所需值是通过带有参数的方法调用发送的。实际方法实现在方法定义中。方法调用与方法定义之间存在链接。它被称为结合。绑定有两种类型。它们是静态结合和动态结合。 The关键区别在静态结合和动态结合之间,是,在静态绑定中,在编译时间解析了绑定,而在运行时间解析动态结合,这是执行的实际时间。本文讨论了这两种结合机制之间的差异。

内容

1。概述和关键差异
2。什么是静态绑定
3。什么是动态绑定
4。静态结合和动态结合之间的相似性
5。并排比较 - 静态结合与表格形式的动态结合
6。概括

什么是静态绑定?

绑定是方法调用和方法定义之间的链接。

静态结合和动态结合之间的差异

图01:静态结合和动态结合

请参阅下面用Java编写的程序。

公共类A {

public void method1(){

system.out.println(“ method1”);

}

public void method2(){

system.out.println(“ method2”);

}

公共静态void main(string [] args){

a obj = new a();

obj.method1();

obj.method2();

}

}

根据上述程序,创建了A类型的对象。然后调用方法1和方法2。确定应要求执行的方法称为绑定。语句OBJ.Method1()将调用Method1()和OBJ.Method2()将调用Method2()。此链接具有绑定。

在静态结合中,结合在编译时间解析编译器。也称为早期结合。绑定发生在程序实际运行之前。静态结合发生在方法过载中。请参阅下面用Java编写的程序。

公共空隙计算{

public void sum(int x,int y){

system.out.println(“ sum是”,x+y);

}

public void sum(double x,double y){

system.out.println(“ sum是”,x+y);

}

公共静态void main(string [] args){

计算cal =新计算();

Cal.sum(2,3);

Cal.sum(5.1,6.4);

}

}

根据上述程序,传递两个整数时,将调用带有两个整数的方法。传递两个双重值时,将调用与两个双重值相对应的方法。这种结合过程发生在编译时。编译器知道,它应该调用带有两个整数值的cal.sum(2,3)的总和方法。对于Cal(5.1,6.4),它将调用具有两个双重值的总和方法。所有必需的信息都是在运行时知道的,因此它提高了程序效率和执行速度。

什么是动态绑定?

在动态结合中,编译器不能在编译时解析结合。绑定在运行时发生。也称为较晚的绑定。动态结合发生在方法中覆盖。请参阅Java编写的程序。

公共类Shape(){

public void draw(){

system.out.println(“绘制形状”);

}

}

公共类Circle()扩展了形状{

public void draw(){

system.out.println(“绘制圆圈”);

}

}

公共类Triangle()扩展了形状{

public void draw(){

system.out.println(“绘制三角形”);

}

}

公共类测试{

公共静态void main(string [] args){

形状s;

s = new Shape();

s.draw();

s = new Circle();

s.draw();

s = new Triangle();

s.draw();

}

}

根据上述程序,类形状具有方法绘制()。类圆圈和类三角形扩展了形状类。类圆圈和类三角形可以继承类形状的属性和方法。因此,班级形状是超级班级或父级。班级和三角班级是子类或派生的类。这些类还具有带有自己的实现的绘制方法。因此,超级类中的draw()方法被覆盖。

在主要方法中,调用了不同的对象。有一个形状类型的参考变量,即s。然后,S根据特定类调用该方法。在编译时,编译器只会引用超级绘制方法。当实际执行开始时,它将导致执行不同的绘制方法。首先,S将指向类型形状的对象。因此,它将在形状类中调用Draw方法。然后,S将指向类型圆的对象,并将调用Circle类的绘制方法。最后,s将引用类型三角形的对象,它将在三角形类中调用Draw方法。即使是参考变量为类型形状,绑定恰好取决于对象类型。这个概念称为动态结合。该信息在运行时提供,因此与静态绑定相比,执行速度较慢。

静态结合和动态结合之间有什么相似性?

  • 这两者都与多态性这允许对象以多种方式行事。

静态结合和动态结合之间有什么区别?

静态结合与动态结合

静态绑定是收集所有必需信息以在编译时间调用功能的绑定类型。 动态绑定是收集所有必需信息以在运行时间调用功能的绑定类型。
绑定时间
静态结合发生在编译时。 动态绑定在运行时发生。
功能
静态绑定使用类型信息进行绑定。 动态绑定使用对象解析以绑定。
实际对象
静态绑定不会使用实际对象进行绑定。 动态绑定,使用实际对象进行绑定。
同义词
静态结合也称为早期结合。 动态结合也称为晚结合。
执行
执行速度在静态绑定中很快。 动态绑定的执行速度较低。
例子
静态结合用于方法超载。 动态结合用于方法覆盖。

摘要 - 静态结合与动态结合

方法调用与方法定义之间存在链接。它被称为结合。有两种称为静态结合和动态结合的绑定类型。静态结合和动态结合之间的差异在于,在静态结合中,在编译时间解析结合,而在运行时间解决动态结合,这是实际执行时间。由于在运行时间之前提供了所需的信息,因此与动态绑定相比,静态绑定在执行中很快。

下载静态绑定与动态绑定的PDF

您可以下载本文的PDF版本,并根据引文注释将其用于离线目的。请在此处下载PDF版本:静态结合和动态结合之间的差异

参考:

1.Java访谈04 - 静态绑定与动态绑定,Mahika教程,2017年12月27日。在这里可用

相关文章:

Java中的超载和覆盖之间的关键区别在Java中超载和覆盖之间的区别 组装和DLL之间的差异 Java5和Java6之间的差异 机器依赖和机器独立代码优化之间的差异机器依赖和机器独立代码优化之间的差异 Python和C语言之间的差异Python和C语言之间的差异

提交以下:编程标记为:比较静态结合和动态结合,,,,动态结合,,,,动态绑定定义,,,,动态绑定执行,,,,动态结合函数,,,,动态结合时间,,,,早期结合,,,,较晚的绑定,,,,静态结合,,,,静态结合和动态结合差异,,,,静态结合和动态结合相似性,,,,静态绑定定义,,,,静态绑定执行,,,,静态结合函数,,,,静态结合时间,,,,静态结合与动态结合

关于作者:Lithmee

Lithmee Mandula是计算机系统工程的孟加(荣誉)。她目前正在攻读计算机科学硕士学位。她在写作和研究方面的兴趣领域包括编程,数据科学和计算机系统。

发表评论取消回复

您的电子邮件地址不会被公开。必需的地方已做标记*

请求文章

精选文章

冠状病毒和冷症状之间的差异

冠状病毒和冷症状之间的差异

冠状病毒和SARS之间的差异

冠状病毒和SARS之间的差异

冠状病毒和流感的差异

冠状病毒和流感的差异

冠状病毒和covid 19之间的差异

冠状病毒和covid 19之间的差异

你可能喜欢

做和做的区别

做和做的区别

HTC Droid DNA和Samsung Galaxy S3之间的差异

血液透析和腹膜透析之间有什么区别

血液透析和腹膜透析之间有什么区别

血块和流产之间的差异

西斯和绝地武士之间的区别

最新的帖子

  • Vermicompost和堆肥有什么区别
  • 抑郁症和精神分裂症有什么区别
  • 分子几何和电子几何形状有什么区别
  • 2B和HB铅笔有什么区别
  • 下丘脑和垂体有什么区别
  • 石墨和铅有什么区别
  • 家
  • 空缺
  • 关于
  • 请求文章
  • 联系我们

版权所有©2010-2018之间的区别。版权所有。使用条款和隐私政策:合法的。