A test example illustrating inheritance. Try to figure out the results without running the program.


public class Inh {
    public static void main(String [] args) {
	A a = new A();
	System.out.println(a);
	a.m();
	System.out.println(a);

	B b = new B();
	System.out.println(b);
	b.m();
	System.out.println(b);
	System.out.println((A) b);

	C c = new C();
	System.out.println(c);
	c.m();
	System.out.println(c);
    }
}

class A {
    private int x;

    // constructor 
    public A() {
	x = 1;
    }

    public String toString () {
	return "A: x = " + x;
    }

    public void m () {
	x++;
    }
}


class B extends A {
    protected int y;

    public String toString () {
	return "B: y = " + y + " " + super.toString();
    }   

    public void m() {
	y++;
    }
}


class C extends B {
    private int z;

    public C() {
	z = 3;
    }
    
    public String toString () {
	return "C: z = " + z + " y = " + y + " " + super.toString();
    } 
}


This is an example from CSci 1211 course.