# 泛型<? extends T> 和 <? super T>

<? extentds T><? super T> 是一个不容易理解的知识点,网上很多文章都是概念和内容的堆砌,看完之后反而让人更加疑惑。本文不是一蹴而就的,而是源于作者不断的思考和沉淀,力求通过简单的例子,来讲清楚这个知识点。

# 一个模型

为了接下来的举例说明,先构造 3 个类 Food食物Fruit水果Apple苹果 ,类之间的继承关系如下图所示:

image-20250425161008025

# 正确理解<? extends T> 与 <? super T>

对于 <? extends T><? super T> 一般解释为:

  • <? extends T>表示对象要么是 T 类型,要么是 T 的子类。
  • <? super T> 表示对象要么是 T 类型,要么是 T 的父类。
Last Updated: 10/9/2025, 1:02:15 AM