好的,例如,假设我有一个名为“Vehicle”的抽象类。Vehicle 类除其他外还有一个名为wheels 的静态变量,该变量未初始化。我想要做的是从车辆类扩展其他子类,如“摩托车”和“卡车”,并在这些子类中初始化车轮。
代码:
public abstract class Vehicle {
static int wheels; //number of wheels on the vehicle
}
但以下不起作用:
public class Motorcycle extends Vehicle {
wheels = 2;
}
有没有办法有效地做到这一点?
编辑:感谢到目前为止所有回复的人。我知道制作实例可能比将它们全部放在单独的类中更好的方法,但是我没有完美地获得 java 的“静态”部分,所以我需要一些帮助。
我要为我的程序做的是为 Motorcycle 和 Truck 类设置单独的 sprite,我希望它们是静态的,这样我就不必在每次创建 Motorcycle 或 Truck 的实例时重新加载图像. 不过,除此之外,它们将具有几乎相同的属性,这就是为什么它们都将从 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
}