首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

小弟请求解决方案

2012-03-09 
小弟请求Java code//: polymorphism/FieldAccess.java// Direct field access is determined at compile t

小弟请求

Java code
//: polymorphism/FieldAccess.java// Direct field access is determined at compile time.class Super {  public int field = 0;  public int getField() { return field; }}class Sub extends Super {  public int field = 1;  public int getField() { return field; }  public int getSuperField() { return super.field; }}public class FieldAccess {  public static void main(String[] args) {    Super sup = new sub(); // Upcast    System.out.println("sup.field = " + sup.field +      ", sup.getField() = " + sup.getField());    Sub sub = new Sub();    System.out.println("sub.field = " +      sub.field + ", sub.getField() = " +      sub.getField() +      ", sub.getSuperField() = " +      sub.getSuperField());  }} 

 结果为:

sup.field = 0, sup.getField() = 1
sub.field = 1, sub.getField() = 1, sub.getSuperField() = 0
但是我不明白为什么 第一个sup.field为什么等于0啊

[解决办法]
Java code
 Super sup = new sub(); //因为Super这个是父类,所以 sup.field 调用的是 field = 0
[解决办法]
字段没有多态,但方法有多态。

热点排行