Каковы преимущества объявления объекта как интерфейса? [Дубликат]
Возможный дубликат:
Что это значит для «программа для интерфейса »?
Я заметил, что некоторым людям нравится объявлять объект как один из реализуемых им интерфейсов.даже если в области действия переменной нет необходимости рассматривать ее как интерфейснапример, нет внешнего API, который ожидает интерфейс.
Например:
Map someMap = new HashMap();
Или вы можете просто сделать
HashMap someMap = new HashMap();
и избежать импортаjava.util.Map
в целом.
Каковы преимущества объявления его через интерфейс (первый выше) по сравнению с самим классом (второй выше)?
Спасибо