Каковы преимущества объявления объекта как интерфейса? [Дубликат]

Возможный дубликат:

Что это значит для «программа для интерфейса »?

Я заметил, что некоторым людям нравится объявлять объект как один из реализуемых им интерфейсов.даже если в области действия переменной нет необходимости рассматривать ее как интерфейснапример, нет внешнего API, который ожидает интерфейс.

Например:

Map someMap = new HashMap();

Или вы можете просто сделать

HashMap someMap = new HashMap();

и избежать импортаjava.util.Map в целом.

Каковы преимущества объявления его через интерфейс (первый выше) по сравнению с самим классом (второй выше)?

Спасибо

Ответы на вопрос(5)

Ваш ответ на вопрос