public class A { void foo(OB.B z) { int foo = z.someFun(); } } class OB extends OC { class B extends OC.C { } } class OC { class C { int someFun() { return 5; } } } class D1 {} class D2 {} class E1 {} class E2 {} class F1 {} class F2 {} class G1 {} class G2 {}