我在这里查看了已发布的问题,并没有找到讨论这种特殊情况。
我的代码比这复杂得多,但问题似乎归结为这些元素:
public abstract class AbstractSuper {
protected List<String> supersList = new ArrayList<String();
public AbstractSuper (int someArg) {
initList();
}
protected abstract void initList();
public int getListCount() {
return supersList.size();
}
}
public class ConcreteChild extends AbstractSuper {
public ConcreteChild (int someArg) {
super(someArg);
}
@Override
protected void initList() {
supersList = Arrays.asList("Test String");
}
}
如何在构造ConcreteChild实例之后对getListCount()的任何调用返回0?
子构建的覆盖方法在构造过程中明确地将成员变量设置为非零数组。
在构造具体类之后,从变量指向非零长度数组的方式获取Java中的变量数组长度为零是非本地的。
有人可以解释一下吗?