java的前期绑定和后期绑定

转载 2012年09月01日 09:36:15

原文地址:http://blog.sina.com.cn/s/blog_600046120100wdza.html

程序绑定的概念:
绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定
 
静态绑定:
在程序执行前方法已经被绑定,此时由编译器或其它连接程序实现。例如:C。
针对java简单的可以理解为程序编译期的绑定;这里特别说明一点,java当中的方法只有final,static,private和构造方法是前期绑定
 
动态绑定:
后期绑定:在运行时根据具体对象的类型进行绑定。
若一种语言实现了后期绑定,同时必须提供一些机制,可在运行期间判断对象的类型,并分别调用适当的方法。也就是说,编译器此时依然不知道对象的类型,但方法调用机制能自己去调查,找到正确的方法主体。不同的语言对后期绑定的实现方法是有所区别的。但我们至少可以这样认为:它们都要在对象中安插某些特殊类型的信息。

动态绑定的过程:
虚拟机提取对象的实际类型的方法表;
虚拟机搜索方法签名;
调用方法。
 
关于绑定相关的总结:
在了解了三者的概念之后,很明显我们发现java属于后期绑定。在java中,几乎所有的方法都是后期绑定的,在运行时动态绑定方法属于子类还是基类。但是也有特殊,针对static方法和final方法由于不能被继承,因此在编译时就可以确定他们的值,他们是属于前期绑定的。特别说明的一点是,private声明的方法和成员变量不能被子类继承,所有的private方法都被隐式的指定为final的(由此我们也可以知道:将方法声明为final类型的一是为了防止方法被覆盖,二是为了有效的关闭java中的动态绑定)。java中的后期绑定是有JVM来实现的,我们不用去显式的声明它,而C++则不同,必须明确的声明某个方法具备后期绑定。


Java之前期绑定,后期绑定,简单理解和实例

开心一笑【今天我对老公撒娇:老公你夸夸我呗!老公面无表情的看看我,一言不发。我有点生气,怎么遭,以前叫你夸我,你还会随便敷衍几句,现在连敷衍都不想了吗?老公:随便你怎么说,我只是觉得不配跟仙女说话!】...
  • huangwenyi1010
  • huangwenyi1010
  • 2016年11月26日 13:29
  • 829

java中的绑定、前期绑定、后期绑定三者的概念

绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。   前期绑定:在程序执行前方法已经被绑定,此时由编译器或其它连接程序实现。例如:C。   后期绑定:在运行时根据具体对象的类型进行绑定...
  • q35445762
  • q35445762
  • 2015年07月13日 16:03
  • 689

java的前期绑定和后期绑定使用示例

java的前期绑定在程序执行前根据编译时类型绑定,调用开销较小,如C语言只有前期绑定这种方法调用后期绑定,是指在运行时根据对象的类型进行绑定,又叫动态绑定或运行时绑定。 实现后期绑定,需要某种机制支持...
  • Allen_Infosys
  • Allen_Infosys
  • 2015年12月18日 11:10
  • 223

方法调用绑定--前期绑定和后期绑定

1、将一个方法调用同一个方法主体关联起来被称作绑定。 2、若程序在执行前进行绑定,由编译器和链接程序实现,叫做前期绑定。C语言中只有一种方法调用,就是前期绑定。 3、在运行时根据对象的类型进行绑定...
  • lizhongyisailang
  • lizhongyisailang
  • 2012年11月10日 15:41
  • 1230

.Net中的早期绑定和后期绑定(一)

“绑定”一词在生活是非常常见,像手机绑定、邮箱绑定等等。在.Net中也存在着“绑定”...
  • u013035924
  • u013035924
  • 2015年05月17日 18:59
  • 1491

java 的前期绑定和后期绑定

java的前期绑定在程序执行前根据编译时类型绑定,调用开销较小,如C语言只有前期绑定这种方法调用 后期绑定,是指在运行时根据对象的类型进行绑定,又叫动态绑定或运行时绑定。实现后期绑定,需要某种机...
  • u014112584
  • u014112584
  • 2015年01月12日 13:55
  • 503

Java的前期绑定和后期绑定

涉及到继承,可能使得待访问的类资源有多个定义,那么该何时和如何确定具体访问哪个定义呢?这个过程就是绑定过程。绑定分为前期绑定和后期绑定。在编译过程中,所有类资源(一般数据成员,静态数据成员,一般方法,...
  • qq_36864672
  • qq_36864672
  • 2017年09月26日 17:20
  • 61

Java的前期绑定和后期绑定[新]

前言:本文需要《Java类的实际定义和类资源名称冲突解决》文章的内容作为前导知识。 涉及到继承,可能使得待访问的类资源有多个定义,那么该何时和如何确定具体访问哪个定义呢?这个过程就是绑定过程。绑...
  • DSLZTX
  • DSLZTX
  • 2015年12月31日 19:47
  • 1346

java前期绑定和后期绑定

将一个方法调用同一个方法主体连接到一起就称为“绑定”( Binding),若在程序运行以前执行绑定,就叫作“早期绑定”。也就是说,我们的程序还没有执行,我就能知道它到底要执行哪个方法,执行的结果是什么...
  • u013210703
  • u013210703
  • 2017年06月12日 17:05
  • 54

java之编译时类型(前期绑定)和运行时类型 (后期绑定、动态绑定、运行时绑定)

编译时类型和运行时类型:     Java的引用变量有两个类型,一个是编译时类型,一个是运行时类型,编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型和...
  • li_zhenxing
  • li_zhenxing
  • 2014年05月06日 21:16
  • 1194
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java的前期绑定和后期绑定
举报原因:
原因补充:

(最多只允许输入30个字)