如果我有这样的列表:
static ArrayList<? extends A> list = new ArrayList<A>();
有什么意义? extends A
?这是否意味着我只列出了必须从A继承的子类?
通常我是这样的:
static ArrayList<A> list = new ArrayList<A>();
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] 删除。
我来说两句