Java 实现扩展接口J的接口I的类B是否也扩展类型I?

Java 实现扩展接口J的接口I的类B是否也扩展类型I?,java,class,map,interface,implementation,Java,Class,Map,Interface,Implementation,代码让我感到困惑: Collection<? extends Map<String, String>> a = new ArrayList<SortedMap<String, String>>(); SortedMap<String, String> b = new TreeMap<String, String>(); b.put("1","a"); 类型集合>中的方法

代码让我感到困惑:

 Collection<? extends Map<String, String>> a = 
                       new ArrayList<SortedMap<String, String>>();
 SortedMap<String, String> b = new TreeMap<String, String>();
 b.put("1","a");
类型集合>中的方法add(capture#2-of?extends Map)不适用于参数(SortedMap) 为什么?SortedMap扩展了Map,TreeMap是一个实现SortedMap的类。

这意味着

 Collection<? extends Map<String, String>> a ;
如果将
a
更改为

Collection<SortedMap<String, String>> a = new ArrayList<SortedMap<String, String>>();
Collection a=newarraylist();
可以添加
b
,因为它是这种类型。

这意味着

 Collection<? extends Map<String, String>> a ;
如果将
a
更改为

Collection<SortedMap<String, String>> a = new ArrayList<SortedMap<String, String>>();
Collection a=newarraylist();

可以添加
b
,因为它是这种类型。

为什么我不能说?扩展映射的每个类型都将是有效的。@user710818这不是
所说的吗?扩展
意味着。这并不意味着任何子类都是有效的,它意味着子类是未知的。看看我的例子,我明白了。谢谢!为什么我不能说?扩展映射的每个类型都将是有效的。@user710818这不是
所说的吗?扩展
意味着。这并不意味着任何子类都是有效的,它意味着子类是未知的。看看我的例子,我明白了。谢谢!