Подтвердить что ты не робот

Java.util.HashMap - почему HashMap расширяет AbstractMap и реализует Map?

почему HashMap расширяет AbstractMap и реализует карту? не хватает AbstractMap, потому что AbstractMap реализует Map?

4b9b3361

Ответ 1

Это избыточно. Я подозреваю, что это было сделано по причинам "документации". HashMap реализует Map, и вы можете положиться на это. Тот факт, что он расширяет AbstractMap, возможно, является просто детальностью реализации. (Хотя крайне маловероятно, что будущие версии HashMap не будут расширять AbstractMap, так как там, вероятно, есть какой-то код, который ожидает, что HashMap будет назначен для AbstractMap.)

Ответ 2

Это избыточно, но не больно. Если они не захотят реализовать Map в AbstractMap в будущем, он все равно будет работать.

Ответ 3

Еще одна вещь: AbstractMap - это деталь реализации. Он может отсутствовать в будущей версии Oracle JDK. Он может отсутствовать в текущей версии IBM JDK. Но присутствует ли это или нет, HashMap всегда должен соответствовать контракту List. Таким образом, это явно захвачен в объявлении класса, указав "HashMap реализует карту"