たとえば、「Vehicle」という抽象クラスがあるとします。Vehicleクラスには、特に、初期化されていないwheelsと呼ばれる静的変数があります。私がやりたいのは、「Motorcycle」や「Truck」など、Vehicleクラスから拡張された他のサブクラスを用意し、これらのサブクラスでホイールを初期化することです。
コード:
public abstract class Vehicle {
static int wheels; //number of wheels on the vehicle
}
ただし、以下は機能しません。
public class Motorcycle extends Vehicle {
wheels = 2;
}
これを効果的に行う方法はありますか?
編集:これまでに返信してくれたすべての人に感謝します。インスタンスを作成する方が、すべてを別々のクラスに配置するよりもおそらく良い方法だと思いますが、Javaの「静的」部分を完全に取得することはできないため、ここで少し助けが必要です。
私がプログラムでやろうとしているのは、オートバイとトラックのクラスに別々のスプライトを用意することです。オートバイやトラックのインスタンスを作成するたびに画像をリロードする必要がないように、それらを静的にしたいと思います。 。ただし、それ以外は、互いにほぼ同じプロパティを持ちます。そのため、両方ともVehicleスーパークラスから拡張されます。
これが行われていることを確認できる他の唯一の方法は、Vehicleクラスではなく、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
}