class A           { int bin(A x){ return 1; } }
class B extends A { int bin(B x){ return 2; } }

class  AB{
  static A aa = new A();
  static B bb = new B();
  static A ab = bb;
  static void print (String s, int r){
    System.out.print(s); System.out.println(r);
  }
  public static void main (String argv[]) {
    print ("aa.bin(aa)=",aa.bin(aa));
    print ("aa.bin(ab)=",aa.bin(ab));
    print ("aa.bin(bb)=",aa.bin(bb));
    print ("ab.bin(aa)=",ab.bin(aa));
    print ("ab.bin(ab)=",ab.bin(ab));
    print ("ab.bin(bb)=",ab.bin(bb));
    print ("bb.bin(aa)=",bb.bin(aa));
    print ("bb.bin(ab)=",bb.bin(ab));
    print ("bb.bin(bb)=",bb.bin(bb));
  }
}