/** * This code is from the book: * Winder, R and Roberts, G (1998) * Developing Java Software</em> * John Wiley & Sons. * It is copyright (c) 1997 Russel Winder * and Graham Roberts. */ class Superclass{ public int i = 5; protected int j = 10; private int k = 20; public void show(){ System.out.println("Superclass " + i + " " + j + " " + k); } } class Subclass extends Superclass{ // Instance variable that hide // those inherited from Superclass public int i = 1; protected int j = 2; private int k = 3; public void test(){ // Display initial values of instance variables show(); //Call superclass show method using super super.show(); //Access superclass variables that //have been hidden super.i = 100; super.j = 200; //Can't access a private variable //super.k = 30; //Error //Access this classes instance variables normally i = 1000; j = 2000; k = 3000;//No problem accessing private variable //belonging to this class //Show values of instance variables again show(); super.show(); } //Overridden method public void show(){ System.out.println("Subclass " + i + " " + j + " " + k); } } class l1Inherit12{//Super2 public static void main(String[] args){ Subclass subclass = new Subclass(); subclass.test(); } } /******** sample compilation & run ******* # javac l1Inherit12.java # java l1Inherit12 Subclass 1 2 3 Superclass 5 10 20 Subclass 1000 2000 3000 Superclass 100 200 20 # ******************************************/