Bonjour,
J'ai une question concernant le design lié à l'héritage et aux champs statiques.
Je sais qu'il n'est pas possible de redéfinir un champ statique dans une classe fille.
Mais dans le cas où l'on souhaite définir une constante qui varie d'une classe fille à l'autre, comment peut-on garder une notion d'héritage ?
Par exemple, j'ai une classe Véhicule, dont hérite une classe Voiture, et une classe Moto.
Je souhaite définir, dans la classe Véhicule, une méthode getNombreRoue() qui renvoie le nombre de roues du véhicule. Ce nombre est bien sûr constant pour les classes filles :
- Une voiture aura 4 roues
- Une moto aura 2 roues.
Mais je ne peux pas mettre dans ma classe mère un champ
et le redéfinir dans les classes filles, ce qui serait pourtant tentant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part public static final NB_ROUE;
Bien sûr, je peux faire par exemple dans ma classe Voiture :
Mais le 4 est en dur dans le code, ce qui n'est pas top...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public int getNombreRoue(){ return 4; }
Le mieux est-il tout simplement de définir dans chaque classe fille une variable statique NB_ROUE, et la renvoyer dans le getter, ou y'a-t-il un meilleur design pour implémenter ma méthode getNombreRoue() tout en gardant un aspect paramétrable à la valeur NB_ROUE pour chaque classe fille ?
Merci pour vos réponses !
Bomehc
Partager