黑马程序员技术交流社区

标题: 不运行代码 直接猜结果 看看自己基本功咋样 [打印本页]

作者: 沙漠里的小鱼    时间: 2014-5-25 01:25
标题: 不运行代码 直接猜结果 看看自己基本功咋样
class Fu {
   int i=6;
   void show (){
    System.out.println(i);
   }
}

class Zi extends Fu {
   int i=10;
}

class Test {


public static void main(String[] args) {
  Fu f=new Fu();
  f.show();
  Zi z=new Zi();
  z.show();
}
}

大家猜猜结果咋样

作者: hamiguadjs    时间: 2014-5-25 02:22
结果是:6 6,这个比较简单,创建的对象调用的都是父类的show()方法,子类的变量  i 是不能够穿越的!

作者: 飘渺≮★耘    时间: 2014-5-25 08:27
结果是 6 6
作者: More    时间: 2014-5-25 08:33
这里不存在方法的覆盖,继承的是父类中的方法 ,而方法是动态绑定的 所以结果是6,6
作者: 尘埃落定    时间: 2014-5-25 08:40
这个好看,6    6
作者: Dark_Horse    时间: 2014-5-25 09:14
结果是6,6
作者: wuhyoung    时间: 2014-5-25 10:30
6 6 覆盖的只是方法,变量是不会被覆盖的
作者: 沙漠里的小鱼    时间: 2014-5-25 11:54
擦 大家基本功都这么强啊
作者: 532989476    时间: 2014-5-25 13:04
6,6我也明白了
作者: 微笑=.一瞬间    时间: 2014-5-25 18:49
看了回答 忽然明白了
作者: l939    时间: 2014-5-25 21:32
果断6 和6 啊,又没有覆盖父类的show方法
作者: 茂子    时间: 2014-5-26 09:08
学习了,又一次加深印象了。。。
作者: 武器商人    时间: 2014-5-26 09:20
子类变量和父类方法又没啥关系,再说了 6 6比较好看的说
作者: 明日辉煌    时间: 2014-5-26 21:04
看了回答总算明白了,看来鄙人的基本功还有待加强啊
作者: hamiguadjs    时间: 2014-5-26 21:17
就这问题,也能给评分,我表示版主偏心啊!!!:Q
作者: KevinSmart    时间: 2014-5-26 21:23
两个都是6,6,第二个调用的仍然是父类变量
作者: 墓____夜    时间: 2014-5-26 23:10
这个我也会,  6 ,6 。
作者: yuZhe_toString    时间: 2014-5-28 16:10
66666666666666666666




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2