1 package test4; 2 3 interface IRename { foo(Rename r)4 Rename foo(Rename r); 5 } 6 7 class RenameB { foo()8 int foo() { return 10; } 9 } 10 11 public class Rename implements IRename { 12 int value = 3; 13 Rename next = null; 14 foo(Rename r)15 public Rename foo(Rename r) { 16 Rename k = r; 17 if (k == null) 18 return null; 19 else 20 return k.next; 21 } 22 run()23 public int run() { 24 next = new Rename(); 25 next.value = 4; 26 RenameB rb = new RenameB(); 27 return foo(this).value + rb.foo(); 28 } 29 } 30 31