基本クラスには、ArrayList として実装された変数があります。
class Base<E> {
List<Collection<E>> adj;
public Base (int size) {
adj = new ArrayList<Collection<E>>(size);
for(int i = 0; i < size; i++)
adj.add(new ArrayList<E>());
}
}
サブクラスで、実装を HashSet に変更したいと思います。
class Sub<E> extends Base<E> {
List<Collection<E>> adj;
public Sub (int size) {
adj = new ArrayList<Collection<E>>(size);
for(int i = 0; i < size; i++)
adj.add(new HashSet<E>());
}
}
しかし、「別のコンストラクターを明示的に呼び出す必要があります」というエラーが表示されるため、許可されません。私は何をすべきか?