Java есть ли отличие в использование TreeMap

Возможно вопрос покажется глупым, но хочу узнать есть ли разница в этих записях?

Map<Integer, String> map1 = new TreeMap<>(); //1 способ

SortedMap<Integer, String> map2 = new TreeMap<>(); //2 способ

Ответы (1 шт):

Автор решения: Roman Konoval

Разница есть.

В обоих случаях будут созданы такие же точно экземпляры TreeMap. Разница заключается в том, какие действия будут доступны через переменные map1 и map2. В случае с map1 нельзя будет делать действия специфичные для SortedMap, т.е. например взятие первого или последнего элемента используя методы типа firstKey, а используя map2 это можно сделать.

Компилятор проверяет тип переменной и для map1 доступны только операции определенные в Map несмотря на то, что map1 содержит ссылку на экземпляр дочернего класса.

→ Ссылка