具有泛型返回类型的override方法中的参数会导致覆盖失败

Lam*_*ora 5 java generics

我有以下四个班级:

public interface Account {}

public class SavingsAccount implements Account {}

public abstract class Parent {

    protected abstract <T extends Account> List<T> getAccounts(List<String> ids);
}

public class Child extends Parent {

    @Override
    protected List<SavingsAccount> getAccounts(List<String> ids) {
        return new ArrayList<>();
    }
Run Code Online (Sandbox Code Playgroud)

}

这会在注释@Override上产生编译错误:

"方法不会覆盖其超类中的方法"

如果删除方法的参数,编译器不会抱怨.为什么它首先产生错误,为什么在删除参数时错误会消失?