import java.util.Arrays;

import java.util.Collection;

import java.util.HashSet;


/**

 * CustomHashSet.java

 */

class CustomHashSet<E> extends HashSet<E> {

private int addCount = 0;


public CustomHashSet() {

}


public CustomHashSet(int initNum, float factorNum) {

super(initNum, factorNum);

}


@Override

public boolean add(E e) {

addCount++;

return super.add(e);

}


@Override

public boolean addAll(Collection<? extends E> c) {

addCount += c.size();

return super.addAll(c);

}


public int getAddCount() {

return addCount;

}

}


/**

 * Test.java

 */

public class Test {

public static void main(String[] args) {

CustomHashSet<String> chs = new CustomHashSet<String>();

chs.addAll(Arrays.asList("JAVA", "IS", "DIFFICULT"));

System.out.println(chs.getAddCount());

//SuperClass sc = new SuperClass();

//sc.pathMethod();

}

}


AbstractCollection 의 addAll에서 add를 실행하는데 왜 CustomHashSet 의 add가 실행되는거?

AbstractCollection 에도 add가 있자나