interface A extends Y { @Override public void foo(); } class B extends T { @Override public void foo() { } } class C implements A { @Override public void foo() { } } class D extends Z { @Override public void foo() { } } class S { }