Java Map <K,V>:为什么get(object)没有得到(K)?

Mar*_*itt 6 java generics

可能重复:
Java泛型:为什么Map.get()忽略类型?

有人可以解释为什么使用Map定义

V put(K key,V value);
V get(Object key);
Run Code Online (Sandbox Code Playgroud)

为什么get没有定义为:

V get(K key)
Run Code Online (Sandbox Code Playgroud)

同样,为什么这些方法键入的Object,而不是KV分别?

boolean containsKey(Object key); // Why not K?
boolean containsValue(Object value); // Why not V?
Run Code Online (Sandbox Code Playgroud)

这是一个向后兼容的东西(1.5之前的版本)?