Powiel możliwe:
Java.util.HashMap — why HashMap extends AbstractMap and implement Map?Dlaczego aplikacja HashMap implementuje Map, jeśli rozszerza AbstractMap?
w Javie do wdrożenia HashMap<K,V>
musimy wdrożyć Map<K,V>
.
Jednak gdy debugowałem więcej w klasach java, wydaje się, że .... java definiuje klasę HashMap
w następujący sposób.
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable
Jednocześnie widziałem public abstract class AbstractMap<K,V>
realizuje Map<K,V>
również implementuje interfejs Map<K,V>
.
Jeśli więc klasa abstrakcyjna implementuje interfejs, jaki jest powód wdrożenia Map<K,V>
na poziomie klasy Map<K,V>
?
Zgodnie z moją wiedzą klasa HashMap
ma wszystkie metody odziedziczone po AbstractMap
, które mogą zostać zmienione przez HashMap
zgodnie z wymaganiami.
Może kiedy został zaprojektowany w Javie 1.2 klasy potrzebne do wdrożenia interfejsu nawet jeśli super klasa już wdrożony IMO. –
Zobacz [to] (http://stackoverflow.com/questions/11028542/why-does-atomicinteger-implements-serializable). Podkreśla podobną sytuację. –
Tak ... powinien być zamknięty jako duplikat. –