//prints 2 class C1 extends Object { nat callWhoami(C1 obj) {obj.whoami(0);} nat whoami(nat unused) {printNat(1);} } class C2 extends C1 { nat whoami(nat unused) {printNat(2);} } main { var C1 testObj; testObj = new C2; testObj.callWhoami(testObj); }