我有以下四个课程:
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注释上产生编译错误:
“方法不会从其超类覆盖方法”
如果删除了方法的参数,则编译器不会抱怨。 为什么首先会产生错误,为什么在删除参数后错误仍然消失?