具有通用返回类型的重写方法中的参数导致重写失败

时间:2018-07-19 09:31:31

标签: 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<>();
    }

}

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

  

“方法不会从其超类覆盖方法”

如果删除了方法的参数,则编译器不会抱怨。 为什么首先会产生错误,为什么在删除参数后错误仍然消失?

0 个答案:

没有答案