黑马程序员技术交流社区
标题:
多态中的问题
[打印本页]
作者:
安阳
时间:
2013-8-16 23:40
标题:
多态中的问题
多态中为非静态成员方法在编译跟运行时会有差别么,具体是怎么个运行机制?求解
作者:
神之梦
时间:
2013-8-16 23:55
这个问题貌似很深奥,等待大神帮你解答吧
作者:
安阳
时间:
2013-8-17 00:17
神之梦 发表于 2013-8-16 23:55
这个问题貌似很深奥,等待大神帮你解答吧
嘿嘿,谢谢!{:soso_e112:}
作者:
焦允
时间:
2013-8-17 01:03
问题的表达有点让人弄不清楚,但是有一点可以说一下,编译时看数据类型,运行时看实际对象,
也就是说:
一个父类引用变量指向它的子类的对象,编译时JVM会到父类中看有没有要调用的方法;而运行时,由于动态绑定,会调用子类中相应的方法。
作者:
毛恩奇
时间:
2013-8-17 01:16
简单一句话,非静态方法编译看左边,运行看右边,也就是说父类引用指向子类对象时,调用子类重写的方法运行的是子类的方法(右边),但静态方法编译和运行都看左边
作者:
jrry
时间:
2013-8-18 10:08
Fu f = new Zi();
在多态中,非静态成员函数特点
在编译时期:参阅引用型变量所属的类中是否有调用的方法,如果有,编译通过,如果没有,编译失败。
在运行时期:参阅对象所属的类中是否有调用的方法。
总结就是,成员函在多态调用时,编译看左边,运行看右边。
成员变量的特点:
无论编译和运行,都参考左边,即引用型变量所属的类。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2