보통 코드를 짜다보면 List<xxx> a = new ArrayList<>();
라고 선언하는 것을 볼 수 있다.
왜 앞에도 ArrayList
를 사용하지 않는 것일까?
요약하자면, 객체지향 프로그래밍의 일환으로 다형성을 지원하기 위함이다.
List
로 선언한 다음, ArrayList로 객체를 생성하면, 해당 객체를 사용하는 나머지 코드는 이 데이터가 List형 이라는 것만 알게 된다.
그렇기에 나중에 데이터 구조를 LinkedList로 바꿔야하는 상황이 온다면 간단하게 객체가 선언된 곳에서만 바꿔주면 되기에 유연한 구조를 가져갈 수 있다.
즉, 객체는 인터페이스를 사용해서 선언하는게 유지보수에 있어서 훨씬 유연한 구조를 가져갈 수 있게 된다.