【发布时间】:2020-12-16 22:10:20
【问题描述】:
我正在尝试创建一个用一些对象填充二维数组的函数。我的函数如下所示:
void funcName(Element el){
container[0][0] = new el(args);
}
这里唯一的问题是 Element 是一个抽象类,所以当我尝试实例化一个对象时,Java 会给我一个错误。我想要做的是实例化作为元素扩展构建的类的对象(即 B 类扩展元素)。有没有办法将这些类作为参数传递,并让我的函数相应地创建它们?
【问题讨论】:
-
你不能实例化一个抽象类。您必须实例化一个从您需要的抽象类扩展而来的具体类。让我为你准备一个例子。
-
是的,但通常有一种更简洁的方法来执行此操作。有关您的用例的更多详细信息会有所帮助。 (例如,您可以传递
Supplier<? extends Element>。)
标签: java function class inheritance abstract-class