아이템 51에서 소개된 `매개변수 타입으로 클래스가 아니라 인터페이스를 사용하라`는 내용을 `객체는 클래스가 아닌 인터페이스로 참조하라`로 보다 구체적으로 확장할 수 있습니다. 적합한 인터페이스만 존재한다면 매개변수 뿐 아니라 반환값, 변수, 그리고 필드를 전부 인터페이스 타입으로 선언하는 것을 권장합니다. 위 내용을 적용한다면 객체의 실제 클래스를 사용해야 할 상황은 `오직` 생성자로 생성할 때 뿐입니다. 코드 부연 설명 좋은 예는 Set 인터페이스 타입으로 변수를 선언 좋지 않은 예는 Set 인터페이스의 구현체 중 하나인 LinkedHashSet 타입으로 변수를 선언 1. 인터페이스 타입으로 사용하는 습관을 길러야 하는 이유 프로그램을 유연하게 작성하기 위해서는 인터페이스 타입으로 사용하는 습관을 길..