인터페이스에 대해 더 잘 이해하게 된 거 같아요
윤성우 열혈 자바에서 ArrayList<...> list = new ArrayList<>()로 리스트 객체를 선언하는 대신 List<...> list = ArrayList<>()로 선언하는 이유가 타입으로 추상화해서 객체의 재사용성을 높이기 위한 의도도 있고 인터페이스 타입으로 객체를 선언해서 인터페이스는 다른 객체 간에 메시지를 주고받는 창구의 역할을 수행한다는 의미를 강조하기 위함도 있군요

- dc official App