先贴代码,然后再说我的疑问:
public class Concrete extends HashSet {
private static final long serialVersionUID = 8191406567257721779L;
private int count = 0;
public Concrete() {
}
public Concrete(int initCapacity, float loadFactor) {
super(initCapacity, loadFactor);
}
@Override
public boolean add(E e) {
count++;
return super.add(e);
}
@Override
public boolean addAll(Collection<? extends E> c) {
count += c.size();
return super.addAll(c);
}
public int getCount() {
return count;
}
public static void main(String[] args) {
Concrete<String> c = new Concrete();
System.out.println(c.getCount());
c.addAll(Arrays.asList("123", "456", "44444"));
System.out.println(c.getCount());
}
}
为什么我复写了addAll方法之后,然后getCount返回的不是3而是6????我方法都重写了,不明白!!!希望大侠给我给个详细的解释。