Java泛型中extends与super有何不同?请举例说明。
- 内容介绍
- 文章标签
- 相关推荐
本文共计1866个文字,预计阅读时间需要8分钟。
在Java泛型中,`extends T` 和 `super T` 是通配符(Wildcards)的概念。
- `extends T`:表示上限通配符(Upper Bounds Wildcards),意味着泛型可以接受任何类型T或其子类。
- `super T`:表示下限通配符(Lower Bounds Wildcards),意味着泛型可以接受任何类型T或其父类。
<? extends T>和<? super T>是Java泛型中的“通配符(Wildcards)”和“边界(Bounds)”的概念。
- <? extends T>:是指“上界通配符(Upper Bounds Wildcards)”
- <? super T>:是指“下界通配符(Lower Bounds Wildcards)”
为什么要用通配符和边界?
使用泛型的过程中,经常出现一种很别扭的情况。比如按照题主的例子,我们有Fruit类,和它的派生类Apple类。
class Fruit {}
class Apple extends Fruit {}
然后有一个最简单的容器:Plate类。
本文共计1866个文字,预计阅读时间需要8分钟。
在Java泛型中,`extends T` 和 `super T` 是通配符(Wildcards)的概念。
- `extends T`:表示上限通配符(Upper Bounds Wildcards),意味着泛型可以接受任何类型T或其子类。
- `super T`:表示下限通配符(Lower Bounds Wildcards),意味着泛型可以接受任何类型T或其父类。
<? extends T>和<? super T>是Java泛型中的“通配符(Wildcards)”和“边界(Bounds)”的概念。
- <? extends T>:是指“上界通配符(Upper Bounds Wildcards)”
- <? super T>:是指“下界通配符(Lower Bounds Wildcards)”
为什么要用通配符和边界?
使用泛型的过程中,经常出现一种很别扭的情况。比如按照题主的例子,我们有Fruit类,和它的派生类Apple类。
class Fruit {}
class Apple extends Fruit {}
然后有一个最简单的容器:Plate类。

