小编use*_*527的帖子

Java - 在子类中初始化超类变量?

好的,例如,假设我有一个名为"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)

java variables subclass superclass

7
推荐指数
2
解决办法
3万
查看次数

标签 统计

java ×1

subclass ×1

superclass ×1

variables ×1