java List 扩展了抽象

标签 java list abstract extends

我有一个

public abstract class Person{/*..*/}

public class Woman extends Person{/*..*/}
public class Man extends Person{/*..*/}

我正在尝试实例化一个可以包含男人或女人的列表,我尝试了这个:

List<? extends Person> PersonTypes = new List<? extends Person>()

但它无法实例化,有没有办法实现我想要的并保持 Person 抽象?

最佳答案

List 是一个接口(interface),因此无法实例化本身,类似于也无法实例化的抽象 Person 类。

你应该实例化一个实现List的类,例如ArrayList:

List<Person> people = new ArrayList<Person>();

关于java List 扩展了抽象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22018385/

相关文章:

java - 抽象方法在抽象类或接口(interface)中定义时有何不同?

java - NonFatal 捕获 Throwable 可以吗?

list - 是否可以在 F# 中实现类似于 System.Linq.Enumerable.Cast 的 List.cast 函数?

list - 如何使用随机选择对 Haskell 中的列表进行洗牌

java - 派生类的抽象方法限制控制

java - 如何调用抽象类中的函数?

java - 我正在尝试将我的应用程序从 Spring 转移到 Spring Boot,但遇到了一些问题。特别是以下异常

java - JDK 10 的 Gradle 4.7 目标兼容性

java - Android - 不推荐使用 getRunningservices(ActivityManager)

python - 将嵌套列表转换为 int 或 str