我想知道是否有办法在不破坏封装的情况下做到这一点,我希望抽象类依赖实现子类中定义的参数。像这样:抽象类从实现子类中获取参数?
public abstract class Parent {
private int size;
private List<String> someList;
public Parent() {
size = getSize();
someList = new ArrayList<String>(size);
}
public abstract int getSize();
}
public class Child extends Parent {
@Override
public int getSize() {
return 5;
}
}
这难看吗?有没有更好的办法?或许更重要的是,这是一个好主意吗?
编辑:
类在一个框架的背景下创建的,所以默认参数的构造函数始终是一个叫(事实上,父类扩展了另一个类)。 size参数仅用于说明目的,我不打算将它用于List实现。
嗨AlexR,谢谢你的回答,但有一些这种方法的影响,我没有提到足够快,我已经编辑他们到我的问题。抱歉。 –