为了账号安全,请及时绑定邮箱和手机立即绑定

关于构造方法初始化的问题

关于构造方法初始化的问题

守着一只汪 2019-03-13 13:10:47
class A { int a = f(); int f() { return 1; } }class B extends A {       int b = 37;       int f() {           return b;       }   }   public class CtorDemo4 {       public static void main(String args[]) {           B bobj = new B();           System.out.println(bobj.a);           System.out.println(bobj.f());       }   }代码如上,输出:037在我看来,a应该是等于1啊,它不是应该调用的是A类里面的f()方法吗?本人菜鸟,希望各位多多指点,感激不尽。
查看完整描述

4 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

thinking in java,里面可以解决你所有的疑惑。


查看完整回答
反对 回复 2019-04-26
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

Copperfield的解释有问题, int a = f(); 在A中的实例变量a 的 f()方法执行了,只是被子类的f()方法覆盖了,返回b,b还未初始化,所以返回0 


查看完整回答
反对 回复 2019-04-26
  • 4 回答
  • 0 关注
  • 474 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号