У меня есть назначение java, где я должен построить класс, который работает как Multiset. Класс должен реализовать интерфейс Collections. Я попытался сделать это и объявить все методы, которые находятся в Коллекциях (найдено here). Но когда я компилирую этот код, я получаю следующую ошибку:Проблемы с реализацией java.util.Collection <E> и методы переопределения
error: TreeMultisetNy is not abstract and does not override abstract method retainAll(Collection<?>) in Collection
Почему это происходит?
Heres мой код:
import java.util.*;
public class TreeMultisetNy<E extends Comparable<E>> implements Collection<E> {
private Map<E, Integer> data = new TreeMap<E, Integer >();
public boolean add(E ny) {
return true;
}
public boolean addAll(Collection<? extends E> c){
return false;
}
public void clear() {
}
public boolean contains(E what) {
return false;
}
public boolean containsAll(Collection<?> c) {
return false;
}
public boolean equals(E what) {
return false;
}
public int hashCode() {
return 0;
}
public boolean isEmpty() {
return false;
}
public Iterator<E> iterator() {
return null;
}
public boolean remove(E what) {
return false;
}
public boolean removeAll(Collection<?> c) {
return false;
}
public boolean retainAll(Collection<?> c) {
return false;
}
public int size() {
return 0;
}
public Object[] toArray() {
return null;
}
public Object[] toArray(Object[] a){
return null;
}
}
Я нашел этот вопрос: How to create a class that implements java.util.collections Но я не считаю, что я делаю ту же ошибку, как этот парень, или я ошибаюсь?
Пожалуйста, дайте мне несколько советов, я давно программировал php, но объектная ориентация для меня не новая!
Попробуйте использовать подпись метода 'public boolean retainAll (Collection > c)' вместо 'public boolean retainAll (Collection c)'. –
и 'public boolean addAll (Collection extends E> c)'. Кроме того, посмотрите на AbstractCollection - расширение, которое вместо реализации всего интерфейса самостоятельно может сэкономить определенную работу. – Pyranja
То, что они подразумевают под «не абстрактно», состоит в том, что, поскольку ваш класс не является абстрактным, он должен реализовать все методы. – flup