class A { public int x; public int y=10; public A(int x) { this.x = x; System.out.println("x (A): "+x); System.out.println("y (A): "+y); } } class B extends A { public int z=100; public B(int x) { super(x-1); System.out.println("x (B): "+x); System.out.println("y (B): "+y); System.out.println("z (B): "+z); } } public class inherit2_vars { 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); System.out.println("\nTest 2:"); A v2 = new B(2); System.out.println("v2 uses "+v2.getClass()); System.out.println("accessing x: "+v2.x); } } /* sample output: Test 1: Test 2: x (A): 1 x (A): 1 y (A): 10 y (A): 10 x (B): 2 x (B): 2 y (B): 10 y (B): 10 z (B): 100 z (B): 100 v1 uses class B v2 uses class B accessing x: 1 accessing x: 1 */