好的,例如,假设我有一个名为"Vehicle"的抽象类.除了其他方面,Vehicle类还有一个名为wheels的静态变量,它没有被初始化.我想要做的是从Vehicle类扩展其他子类,如"Motorcycle"和"Truck",并在这些子类中初始化轮子.
码:
public abstract class Vehicle {
static int wheels; //number of wheels on the vehicle
}
Run Code Online (Sandbox Code Playgroud)
但以下不起作用:
public class Motorcycle extends Vehicle {
wheels = 2;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法有效地做到这一点?
编辑:感谢所有回复的人.我认为制作实例可能是一种更好的方法,而不是将它们全部放在不同的类中,但我没有完全得到java的"静态"部分,所以我需要一些帮助.
我正在尝试为我的程序做的是为摩托车和卡车类提供单独的精灵,我希望它们是静态的,这样我每次创建摩托车或卡车的实例时都不必重新加载图像.除此之外,它们将具有几乎相同的属性,这就是为什么它们都将从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
}
Run Code Online (Sandbox Code Playgroud)