Java — Initialisation de la superclasse des variables dans les sous-classes?

Ok, donc, pour l'exemple, disons que j'ai une classe abstraite appelée "Véhicule". La classe de Véhicule, a, entre autres choses, une variable statique appelé roues, ce qui n'est pas initialisé. Ce que je veux faire est d'avoir d'autres sous-classes s'étendant à partir de la classe de Véhicule, comme "Moto", et le "Camion", et dans ces sous-classes, ont les roues initialisé.

Code:

public abstract class Vehicle {
    static int wheels; //number of wheels on the vehicle
}

Mais la ci-dessous ne fonctionne pas:

public class Motorcycle extends Vehicle {
    wheels = 2;
}

Est-il un moyen de le faire efficacement?

EDIT:
Merci à toutes les personnes qui ont répondu jusqu'à présent. J'obtiens que des décisions des instances est sans doute une meilleure façon d'y aller que de les mettre tous dans des classes séparées, mais je n'ai pas la partie "statique" de java parfaitement, j'ai donc besoin d'un peu d'aide ici.

Ce que j'essaie de faire de mon programme est de séparer les sprites pour la Moto et le Camion de classes, et je veux qu'ils soient statiques pour ne pas avoir à recharger l'image à chaque fois que je crée une instance d'une Moto ou d'un Camion. Autre que cela, cependant, ils ont des propriétés presque identiques les uns aux autres, c'est pourquoi ils vont tous les deux être s'étendant à partir du Véhicule de la superclasse.

Le seul autre moyen que je peux voir ce qui est fait est simplement en ne déclarant pas les sprite variable à la catégorie de Véhicule, mais à la Moto/Camion classe, comme ci-dessous:

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
}
Je pense que vous êtes malentendu quelques fondamentaux du langage Java et de la programmation orientée-objet. Avoir des roues comme statique ne pas regarder à droite.
Vous pourriez développer votre affirmation qu'il "ne fonctionne pas."
De Jeu De Mots?

OriginalL'auteur user1935527 | 2012-12-28