class A extends B { int foo() {return 0); public A() { super(); new Inner(this); } } class B extends C { } class C { protected int bar() {return 0}; }