抽象类数组
为什么我不能实例化一个抽象类,但要使一个抽象类数组组成?
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