HashMap<String, Object> map1 = new HashMap<String, Object>();
Map<String, Object> map2 = new HashMap<String, Object>();
Прежде всего Map
- это интерфейс, который имеет другую реализацию, например - HashMap
, TreeHashMap
, LinkedHashMap
и т. д. Интерфейс работает как суперкласс для класса реализации. Таким образом, согласно правилу ООП, любой конкретный класс, реализующий Map
, также является Map
. Это означает, что мы можем назначить / поместить любую переменную типа HashMap
в переменную типа Map
без какого-либо литья.
В этом случае мы можем назначить map1
на map2
без кастинга или потери данных -
map2 = map1