资源说明:Java泛型extends及super区别实例解析
Java泛型中的通配符(Wildcards)和边界(Bounds)是两个重要的概念,分别由 extends T> 和 super T> представляют。这些概念的出现是为了解决泛型中的一些问题。
extends T>:是指“上界通配符(Upper Bounds Wildcards)”,它表示一个能放水果以及一切是水果派生类的盘子。例如,Plate extends Fruit> 表示一个能放水果以及一切是水果派生类的盘子。
super T>:是指“下界通配符(Lower Bounds Wildcards)”,它表示一个能放水果以及一切是水果基类的盘子。例如,Plate super Fruit> 表示一个能放水果以及一切是水果基类的盘子。
为什么要用通配符和边界?在泛型的过程中,经常出现一种很别扭的情况。例如,我们有 Fruit 类和它的派生类 Apple 类。如果我们定义一个“水果盘子”,逻辑上水果盘子当然可以装苹果。但实际上 Java 编译器不允许这个操作。为了让泛型用起来更舒服, Sun 的大脑袋们就想出了 extends T> 和 super T> 的办法,来让“水果盘子”和“苹果盘子”之间发生关系。
在 Java 泛型中,上界通配符和下界通配符的使用可以解决很多问题。例如,我们可以使用 Plate extends Fruit> 来表示一个能放水果以及一切是水果派生类的盘子,从而解决了“苹果盘子”不能转换成“水果盘子”的问题。
在实际应用中,我们可以使用上界通配符和下界通配符来解决更多的问题。例如,我们可以使用 Plate extends Food> 来表示一个能放食物的盘子,从而解决了“苹果盘子”和“肉类盘子”之间的关系问题。
Java泛型中的通配符和边界是两个非常重要的概念,它们可以帮助我们解决泛型中的许多问题,并让我们的代码更加灵活和强大。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。