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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 朱烈葵 中级黑马   /  2012-9-6 12:55  /  1680 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

下面是我对静态绑定和动态绑定的一点理解,不足之处,大家补上
先说明下场景  父类  子类  父类和子类里面都有静态函数也有非静态函数
父类 父类引用 = new 子类(); 父类引用调用了静态函数,这打出来是父类的还是子类的呢?
结果:父类的,由于static 的特性,优先于对象存在,当创建子类对象的时候,先加载父类的类,就在这个时候静态和该类,进行绑定,这就是动态绑定,只要这个父类引用还在就一直绑定在上面。
那么非静态绑定呢,当调用非静态函数的时候,这个时候对象出来了,new出来是子类,就动态的绑定到子类的方法上,如果是父类的,及动态的绑定到父类的方法上,这就是动态绑定,前提是该函数是非静态的。

最后引用毕老师的一句话,成员函数在多态时,编译看左边,运行看右边 非静态情况

无论编译和运行都看左边(该有引用所属的类) 静态情况


评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

2 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马