// Polymorphism and aliases

class A {}
class B extends A {}

public class poly {
    public static void main(String[] args) {
	
	A a1 = new A();
	A a2 = new A();
	B b1 = new B();
	B b2 = new B();
	
	// Since a B can be an A,
	// Could have said $A a1 = new B()$, so:
	a1 = b1;
	
	// But, the reverse is difficult for Java:
	// b2 = (B) a2;  // compiles, but won't run
    }

}


