class A{} interface I> { Q from(A... paths); } interface II extends I {} class C> { public Q from(A... args) {return null;} } class AC> extends C {} class CC extends AC implements II { void bar() { from(null); } static void barStatic() { from(null); } } class Test { void foo(CC a){ a.from(null); } }