A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Coolman 金牌黑马   /  2015-8-28 10:36  /  425 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Coolman 于 2015-8-28 10:39 编辑

原文链接:Java中的静态绑定和动态绑定 http://www.importnew.com/14338.html

一个Java程序的执行要经过编译和执行(解释)这两个步骤,同时Java又是面向对象的编程语言。当子类和父类存在同一个方法,子类重写了父类的方法,程序在运行时调用方法是调用父类的方法还是子类的重写方法呢,这应该是我们在初学Java时遇到的问题。这里首先我们将确定这种调用何种方法实现或者变量的操作叫做绑定。
在Java中存在两种绑定方式,一种为静态绑定,又称作早期绑定。另一种就是动态绑定,亦称为后期绑定。
区别对比
  • 静态绑定发生在编译时期,动态绑定发生在运行时
  • 使用private或static或final修饰的变量或者方法,使用静态绑定。而虚方法(可以被子类重写的方法)则会根据运行时的对象进行动态绑定。
  • 静态绑定使用类信息来完成,而动态绑定则需要使用对象信息来完成。
  • 重载(Overload)的方法使用静态绑定完成,而重写(Override)的方法则使用动态绑定完成。

1 个回复

倒序浏览
学习了,一句话,静态绑定有错误或异常,在编译期就被检测出来,而动态绑定要到程序运行期才能发现有无异常。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马