Collection 인터페이스는 List와 Set 인터페이스의 공통된 부분을 뽑아 정의한 것이다. 이 Collection 인터페이스를 일부 구현한 게 추상 클래스인 AbstractCollection이고, 그 아래 AbstractList와 AbstractSet이 있다. 이들 또한 추상 클래스들이고 우리가 많이 사용하는 ArrayList, HashSet 등이 이들을 상속하여 사용하고 있다. 어찌됐건 내가 궁금했던 것은 List와 Set 인스턴스를 출력할 때 왜 변수만으로 객체 주소가 아니라 컬렉션의 내용이 출력되는지였다. 그 이유는 아래와 같이 이들의 조상인 AbstractCollection에서 toString() 메서드를 오버라이드했기 때문이다. 예제를 보면 쉽게 이해할 수 있다. 작성된 코드는 자바의..