小弟请求
//: 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()); }} Super sup = new sub(); //因为Super这个是父类,所以 sup.field 调用的是 field = 0
[解决办法]
字段没有多态,但方法有多态。