在面向对象的多太特性中有两方面绑定技术:动态绑定和静态绑定,静态绑定主要发生于编译期期,因此他无法掉用运行期间的信息,如我们常用的静态方法,静态变量,而多头绑定呢,他主要发生于运行期,他可以调用多态的信息,那么何为动态绑定呢?我们先来看一段代码:
class Base{
int i=47;
int f(){
return g();
}
int g(){
return i;
}
}
class Dervied extends Base{
int i=27;
int g(){
return i;
}
}
public class test {
public static void main (String[] args)
{
Derived d = new Derived(); //生成Derived的对象
System.out.println(d.f());
// d.f() === Derived.f(d);
}
}
这段代码运行之后将输出27而非47,这就是所谓的动态绑定,子类被实例化后能够根据自己的类型调用相应的方法而非父类的方法。这里问题出现了,如果把子类的g()函数申明为private呢?这样下去将产生错误,因为java不允许将public覆盖为private,但php语言可以,如果是php语言,那他执行的将是父类的go(),这也许就是php语言的特点,懒散,松散吧,非安全性的语言
分享到:
相关推荐
详细介绍了java动态绑定和静态绑定的区别
Delphi 动态绑定事件 指定事件处理函数过程 绑事事件自定义函数过程 测试完全可用,含源码文本.
java实现对echarts 属性全动态设置 数据动态绑定。封装echarts 的绘图方法,使得js只需要getLine(data),getBar(data)等就可以绘制图形。echarts上的所有属性都可以在java中设置。
Delphi中StringGrid动态绑定下拉列表
深入理解C++的动态绑定和静态绑定 静态绑定:绑定的对象的静态类型,某特性(比如函数)依赖于对象的静态类型,发生在编译期。 动态绑定:绑定的对象的动态类型,某特性(比如函数)依赖于对象的动态类型,发生在...
动态绑定DataGridView 动态绑定DataGridView
今天小编就为大家分享一篇layui动态绑定事件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
完美的数据报表reportViewer动态绑定DataTable数据, 1.创建窗体form1 2.拖入reportViewer1 3.解决方案中添加-数据-数据集(dataset1)-工具栏中拖入DataTable到xsd界面-添加列 DataColumn1-DataColumn4 4.解决方案...
treeview动态数据绑定,撒打发库单据发呆打卡机发送到房间啊
wpf 动态绑定不在项目中的图片
dataGridView读取文件列名和数据库字段名称,文件列名作为原始列(固定的),数据库字段列(动态下拉框)。一个设定关系导入功能
IP绑定,修改MAC地址,路由配置等
实现动态绑定ASPxGridView,根据选择数据库的不同,加载不同的表,从而操作不同数据库
WinForm中动态绑定TreeView数据 收藏 根据数据库中的记录,动态生成树。从而进行删减。
treeview动态绑定数据库,为treeview动态添加节点.
动态SQL与绑定变量 动态SQL与绑定变量
DataGrid动态绑定ComboBox <DataGridComboBoxColumn.EditingElementStyle>
老是登陆阿里网站手动更改域名对应的IP地址不是办法啊&*%¥#@ 自己写个工具自动绑定吧,求人不如求已,开工。。。。花了两天时间搞定。NND,阿里的API接口好几个坑。。。。。 工具怎么用自己看压缩包中的readme.txt...
利用bind+dhcpd实现域名动态绑定
JComboBox动态绑定数据库实例,数据库为Sql2000,使用JDBC连接数据库