子类无法更新抽象超类成员变量

时间:2015-05-22 07:54:40

标签: variables abstract member

我在这里查看了已发布的问题,并没有找到讨论这种特殊情况。

我的代码比这复杂得多,但问题似乎归结为这些元素:

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中的变量数组长度为零是非本地的。

有人可以解释一下吗?

0 个答案:

没有答案