/**

* CustomHashSet.java

*/

public 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());

}

}


문제. 콘솔에 출력되는 값과 그 값이 나온 이유를 객체지향의 관점에서 설명하시오.