/* OverrideExample.java Burton Rosenberg Mon Mar 23 13:41:27 EST 1998 EXAMPLE RUN: appomattox> java OverrideExample b.c = B ((A)b).c = A B's f(int): 2 B's f(int): 2 A's g(int):1 A's g(int):1 B's g(). appomattox> */ class A extends Object { char c='A' ; void f(int i) { System.out.println("A's f(int): "+i) ; } void g(int i) { System.out.println("A's g(int):"+i) ; } } class B extends A { char c='B' ; // B's c shadows A's c void f(int i) { // B's f overrides A's f System.out.println("B's f(int): "+2*i) ; } void g() { // B's g overloads A's g System.out.println("B's g().") ; } } public class OverrideExample extends Object { public static void main( String [] argv ) { B b = new B() ; System.out.println("b.c = "+ b.c ) ; System.out.println("((A)b).c = "+ ((A)b).c ) ; b.f(1) ; ((A)b).f(1) ; b.g(1) ; ((A)b).g(1) ; b.g() ; // ((A)b).g() ; /* compiler error: appomattox> javac OverrideExample.java OverrideExample.java:44: No method matching g() found in class A. ((A)b).g() ; ^ 1 error */ } }