36 lines
1004 B
Java
36 lines
1004 B
Java
// polymorphism/FieldAccess.java
|
|
// (c)2016 MindView LLC: see Copyright.txt
|
|
// We make no guarantees that this code is fit for any purpose.
|
|
// Visit http://OnJava8.com for more book information.
|
|
// 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;
|
|
@Override
|
|
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());
|
|
}
|
|
}
|
|
/* Output:
|
|
sup.field = 0, sup.getField() = 1
|
|
sub.field = 1, sub.getField() = 1, sub.getSuperField() = 0
|
|
*/
|