class A { int i = 1; int f() { return i; } } class B extends A { int i = 2; // Piilottaa luokassa A olevan muuttujan i. int f() { return -i; } // Korvaa luokassa A olevan metodin f. } public class override_test { public static void main(String args[]) { B b = new B(); System.out.println(b.i); // Viittaa muuttujaan B.i; tulostaa 2. System.out.println(b.f()); // Viittaa metodiin B.f();tulostaa -2. A a = (A) b; // Muunnetaan b luokan A tyyppiseksi. System.out.println(a.i); // Nyt viittaa muuttujaa A.i; tulostaa 1; System.out.println(a.f()); // Viittaa yhä metodiin B.f();tulostaa -2; } }