class Super{
public int field = 0;
}
class Sub extends Super{
public int field = 1;
}
public class FieldAccess {
public static void main(String[] args) {
Super sup = new Sub();
System.out.println(sup.field);
}
这段代码运行结果为什么是0?
继承的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- enet_java 2010-12-31 09:12关注
[code="java"]Super sup = new Sub();
System.out.println(sup.field); [/code]虽然是实例化子类,但是子类可以继承/覆写父类的方法,却不能覆写父类的属性,虽然子类定义了和父类同名的属性,但是JVM认为那个属性只是子类特有的属性,所以这个地方得到0。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报