class C implements A { C(A a) {} } interface A { A a = new C(this); A a1 = new C(this){}; class B { A foo() { return A.this; } B foo1() { return B.this; } class D { B f() { return B.this; } } } }