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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 djbcool 于 2015-1-16 11:26 编辑

这是在毕老师在讲多态中非静态函数成员特点的时候总结过的一句话,我不是很理解看左边和看右边指的是什么。哪位同学理解其中含义?

7 个回复

倒序浏览
月老~牵红线 来自手机 中级黑马 2015-1-15 11:37:11
沙发
多态中成员函数会存在覆盖。比如Animal a=new Cat();如果a调用了一个方法show。在编译时期看左边,就是先看a所属的类Animal中是否有这个方法,如果有,编译通过,没有就编译失败。在运行时期看右边,就是看Cat中是否复写了show方法,没有复写就运行父类的那个方法,如果复写了,就运行Cat类中复写后的show方法

评分

参与人数 1技术分 +2 收起 理由
lwj123 + 2

查看全部评分

回复 使用道具 举报
月老~牵红线 发表于 2015-1-15 11:37
多态中成员函数会存在覆盖。比如Animal a=new Cat();如果a调用了一个方法show。在编译时期看左边,就是先看 ...

正解!..................
回复 使用道具 举报
我感觉就是,编译看左边,就是看编译能否通过,而运行结果,是跟右边有关系,结果是右边的那个类中的方法!
回复 使用道具 举报
左边应该是看有没有报红线就是编译错误 右边应该就是运行时的错误了吧
回复 使用道具 举报
月老~牵红线 发表于 2015-1-15 11:37
多态中成员函数会存在覆盖。比如Animal a=new Cat();如果a调用了一个方法show。在编译时期看左边,就是先看 ...

很感谢,看完后秒懂!
回复 使用道具 举报
多态中,编译均看父类,运行才有区分
回复 使用道具 举报
在编译时期,java虚拟机只检查左边有没有这个方法,有就通过,在运行时期虚拟机会调用右边的这个方法,有就运行这个方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马