为什么我不能实例化抽象类,而可以创建抽象类的数组?
public abstract class Game{
...
}
Game games = new Game(); //Error
Game[] gamesArray = new Game[10]; //No Error发布于 2013-10-11 05:11:34
因为当您创建某个对象类型的数组时,您并不试图实例化这些对象。你所做的只是一些插槽来放置参考资料。
new Game[10];为Game引用创建了10个插槽,但它没有生成一个Game。
发布于 2013-10-11 05:14:21
因为你不违反abstract class rules.Essentially,
Game games = new Game();细分为:
Game games; //Will Work because it's just a declaration
games=new Game(); //Will not work because it's instantiation虽然创建对象对于抽象类完全有效,但不允许初始化。
发布于 2013-10-11 05:20:57
-是一个Abstract类,它的实例不能创建。
-创建一个数组,它保存抽象类的对象引用变量,只是引用(),而不是对象本身()。
- - Java中的一个Abstract类和一个Interface用于实现不断变化的行为。考虑一下Abstract class like laying down some protocols for its concrete classes.
Eg:
public abstract class Vehicle{
}
public class Car extends Vehicle{
public static void main(String[] args){
Car car1 = new Car(); (Possible)
Vehicle car2 = new Car(); (Possible)
Vehicle car3 = new Vehicle(); (NOT Possible)
}
}https://stackoverflow.com/questions/19310638
复制相似问题