Consider the following case of inheritance:
public class ExtendingHashSet<E> extends HashSet<E> {
private int counter = 0;
public ExtendingHashSet() {
}
@Override
public boolean add(E e) {
counter++;
return super.add(e);
}
@Override
public boolean addAll(Collection<? extends E> c) {
counter += c.size();
return super.addAll(c);
}
public int getCounter() {
return counter;
}
}
Created instance:
ExtendingHashSet<String> s = new ExtendingHashSet<String>();
s.addAll(Arrays.asList("one", "two", "three"));
Question: What value would s.getCounter() method return at this point and why?
Looking forward for your answers dear readers