# 泛型<? extends T> 和 <? super T>
<? extentds T>
和<? super T>
是一个不容易理解的知识点,网上很多文章都是概念和内容的堆砌,看完之后反而让人更加疑惑。本文不是一蹴而就的,而是源于作者不断的思考和沉淀,力求通过简单的例子,来讲清楚这个知识点。
# 一个模型
为了接下来的举例说明,先构造 3 个类 Food食物
、 Fruit水果
、 Apple苹果
,类之间的继承关系如下图所示:
# 正确理解<? extends T> 与 <? super T>
对于 <? extends T>
与 <? super T>
一般解释为:
<? extends T>
表示对象要么是 T 类型,要么是 T 的子类。<? super T>
表示对象要么是 T 类型,要么是 T 的父类。
← 泛型总结 时间格式ISO 8601标准表示 →