import org.eclipse.jdt.annotation.NonNull; abstract class Foo { abstract void foo(@NonNull String str); public static class Foo2 extends Foo { @Override void foo(@NonNull String str) { } } public static class Foo3 extends Foo { @Override void foo(String str) { } } }