추상클래스와 인터페이스의 상호보완관계
- 인터페이스의 추상메서드 중 일부 중복구현이 필요한 부분을 추상클래스로 구현하여 중복을 줄임
- Collection 프레임워크에서도 많이 쓰이는 방식
- ArrayList의 경우 List, Collection 인터페이스의 구현체이지만, AbstractList 추상클래스를 상속받음 → AbstractList가 중간체 역할
이 클래스는 "무작위 액세스" 데이터 저장소(예: 배열)가 지원하는 이 인터페이스를 구현하는 데 필요한 노력을 최소화하기 위해 List 인터페이스의 골격 구현을 제공합니다. 순차 액세스 데이터(예: 연결리스트)의 경우 이 클래스보다 AbstractSequentialList를 우선적으로 사용해야 합니다.