대부분의 Java 코드에서 사람들은 다음과 같이 Java 객체를 선언합니다.
Map<String, String> hashMap = new HashMap<>();
List<String> list = new ArrayList<>();
대신에:
HashMap<String, String> hashMap = new HashMap<>();
ArrayList<String> list = new ArrayList<>();
실제로 사용될 구현이 아닌 인터페이스를 사용하여 Java 객체를 정의하는 것이 선호되는 이유는 무엇입니까?