重写方法的返回类型必须是重写方法的返回类型的子类型。
Class<Impl>不是
Class<T>where 的子类型
<T extends Interface>。T在这里未知。
Class<Impl>是
Class<? extends Interface>每个子类型化规则的的子类型。
有关通配符的一些子类型化规则:
对于任何X
A<X>
是…的子类型A<? extends X>
A<X>
是…的子类型A<? super X>
如果
S是的子类型
T
A<? extends S>
是…的子类型A<? extends T>
A<? super T>
是…的子类型A<? super S>
简而言之,(
<:表示“是”的子类型)
A<S> <: A<? extends S> <: A<? extends T>A<T> <: A<? super T> <: A<? super S>



