thể trùng lặp:
Java.util.HashMap — why HashMap extends AbstractMap and implement Map?Tại sao HashMap triển khai Bản đồ nếu nó mở rộng AbstractMap?
Trong java để thực hiện HashMap<K,V>
chúng ta cần phải thực hiện Map<K,V>
.
Tuy nhiên khi tôi gỡ lỗi nhiều hơn trong các lớp java có vẻ như .... java định nghĩa HashMap
lớp như sau.
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable
Đồng thời tôi thấy public abstract class AbstractMap<K,V>
thực hiện Map<K,V>
nó cũng thực hiện các giao diện Map<K,V>
.
Nếu lớp trừu tượng triển khai giao diện thì lý do đằng sau việc triển khai Map<K,V>
ở mức HashMap
là gì?
Theo hiểu biết của tôi HashMap
lớp học có tất cả các phương pháp được kế thừa từ AbstractMap
có thể bị ghi đè bởi HashMap
theo yêu cầu.
Có thể khi nó được thiết kế trong Java 1.2 lớp cần thiết để triển khai giao diện ngay cả khi siêu lớp đã triển khai IMO. –
Xem [this] (http://stackoverflow.com/questions/11028542/why-does-atomicinteger-implements-serializable). Nó chỉ ra tình huống tương tự –
Có ... nó phải được đóng như một bản sao. –