“?扩展A”的目的是什么?

斯特劳顿

如果我有这样的列表:

static ArrayList<? extends A> list = new ArrayList<A>();

有什么意义? extends A这是否意味着我只列出了必须从A继承的子类?

通常我是这样的:

static ArrayList<A> list = new ArrayList<A>();
阿夫扎尔·艾哈迈德·泽山(Afzaal Ahmad Zeeshan)

extends关键字表示该关键字左侧的类将使用右侧类中的所有方法和属性。?不会在那里。会有些名字。类的名称。

static ArrayList<? extends A> list = new ArrayList<A>();

在上面的代码中,您正在制作一个新ArrayList对象,该对象使用(实现/扩展)ClassA的方法和属性,但不是真实的A

static ArrayList<A> list = new ArrayList<A>();

在您通常使用的第二个代码中,您实际上是在创建一个实际使用类的Object A

在Java中,我们将其称为继承,其中一个类继承了另一类的所有属性和功能。

http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章