抽象类数组

为什么我不能实例化一个抽象类,但要使一个抽象类数组组成?

public abstract class Game{

...

}

Game games = new Game(); //Error

Game[] gamesArray = new Game[10]; //No Error

回答:

Game[] gamesArray = new Game[10];

实例化意味着创建一个类的实例。在上述情况下,您刚刚声明了一个gamesArray类型Game为size

的类型10(只是引用,没有其他内容)。这就是为什么它不会引发任何错误。

当您尝试做时,您会得到错误

gamesArray[0] = new Game(); // because abstract class cannot be instantiated


但是做一个抽象类的数组?

稍后,您可以执行以下操作

gamesArray[0] = new NonAbstractGame(); // where NonAbstractGame extends the Games abstract class.

这是非常允许的,这就是为什么您首先要参加抽象类的原因。

以上是 抽象类数组 的全部内容, 来源链接: utcz.com/qa/398382.html

回到顶部