好的,比如说,我有一个名为“Vehicle”的抽象类。Vehicle类中有一些东西,其中之一是一个名为wheels的静态变量,它没有被初始化。我想做的是让其他子类从Vehicle类扩展,比如"Motorcycle"和"Truck",并在这些子类中初始化wheels。
代码:
public abstract class Vehicle {
static int wheels; //number of wheels on the vehicle
}
但以下内容无法正常工作:
public class Motorcycle extends Vehicle {
wheels = 2;
}
有没有一种有效的方法来做到这一点?
编辑: 感谢所有回复过我的人。我明白了创建实例可能比将它们放在不同的类中更好,但是我不完全理解java中的“static”,所以我需要一些帮助。
我要为我的程序为摩托车和卡车类分别设置独立的精灵,并且我希望它们是静态的,这样每次创建摩托车或卡车实例时就不必重新加载图像。尽管如此,它们之间几乎具有相同的属性,这就是为什么它们都将扩展自Vehicle超类。
我唯一能看到的另一种方式就是不在Vehicle类中声明sprite变量,而是在Motorcycle/Truck类中,如下所示:
public abstract class Vehicle {
//Other coding
}
public class Motorcycle extends Vehicle {
static BufferedImage sprite = //initialize image
//Other coding
}
public class Truck extends Vehicle {
static BufferedImage sprite = //initialize image
//Other coding
}