1
Я пытаюсь определить абстрактный класс, который принимает список вещей и делает вещи. Что-то вроде:Java абстрактный класс с общими списками
abstract public class AbstractClass {
private final List<?> list;
public AbstractClass(List<?> list) {
this.list = list;
}
public List<?> getList() { return list; }
abstract void addToList(List<?> list);
}
public class Class1 extends AbstractClass {
public Class1(List<Integer> list) {
super(list);
}
@Override
void addToList(List<Integer> list) {
// do stuff
}
}
public class Class2 extends AbstractClass {
public Class2(List<String> list) {
super(list);
}
@Override
void addToList(List<String> list) {
// do stuff
}
}
List<Integer> a = new List<Integer>();
Class1 c1 = new Class1(a);
List<Integer> b = c1.getList();
c1.addToList(a);
List<String> c = new List<String>();
Class2 c2 = new Class2(c);
List<Integer> d = c2.getList();
c2.addToList(c);
addToList
Имея с определенными типами в подклассах порождают ошибки, но я не знаю, если это вопрос синтаксиса (с моим плохим знанием дженерик) или то, что я пытаюсь сделать (возможно ли перегрузить абстрактный метод)?