// INHERIT6 class A { public int x; public int y = 10; public A(int x) { this.x = x; System.out.println("x from the A constr: "+x); show(); } public void show() {System.out.println("(A): "+x);} } class B extends A { public int z=100; public B(int x) { super(x-1); this.x=x; show(); } public void show() { System.out.println("(B): "+(x+y+z));} } public class inherit6 { public static void main(String[] args){ System.out.println("\nTest 1:"); B v1 = new B(2); System.out.println("v1 uses "+v1.getClass()); System.out.println("accessing x: "+v1.x); v1.show(); System.out.println("\nTest 2:"); A v2 = new B(2); System.out.println("v2 uses "+v2.getClass()); System.out.println("accessing x: "+v2.x); v2.show(); } } /* sample output: Test 1: Test 2: x from the A constr: 1 x from the A constr: 1 (B): 11 (B): 11 (B): 112 (B): 112 v1 uses class B v2 uses class B accessing x: 2 accessing x: 2 (B): 112 (B): 112 */