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