Bonjour à tous,
Je programme en Java en autodidacte en "m'autoformant" via des forums, tutos, etc.
Je rencontre mon premier problème sur le mot clé "super". J'ai repris un exemple sur les véhicules que j'ai modifié pour que je puisse bien comprendre les mécanismes des classes, d'objets, etc.
J'ai créé trois classes:
La classe questionnaire: qui demande à un utilisateur de saisir (scanner) une puissance, une couleur et un prix pour un véhicule. Les informations saisies "se stockent" dans la deuxième classe:
La classe véhicule: je fais afficher une phrase "bâteau" reprenant la puissance, la couleur et le prix.
La classe voiture: je reprends les données de la classe véhicule via un extends et un super et j'ajoute à l'affichage une autre petite phrase "bâteau": C'est une voiture".
Enfin, je souhaite afficher tout cela sur ma classe questionnaire.
Pour résumer, j'essaie de créer une "sorte de cheminement en boucle" où les valeurs se transmettent de questionnaire à véhicule, de véhicule à voiture et de voiture à questionnaire.
Je me suis trompé, je pense savoir où, mais je n'en suis pas sûr et je bloque. Je pense que je me suis trompé sur le super de la classe voiture et/ou sur l'affichage de celui-ci dans la classe questionnaire. Le problème est que lors de l'execution de la classe questionnaire, ma phrase "bâteau" sur la puissance etc. revient du mot clé super situé dans la classe voiture, mais sans les valeurs saisies: puissance, couleur et prix (cela affiche des zéros ou null). Alors, que si j'affiche directement cette phrase de la classe vehicule, la phrase et les valeurs s'affichent. C'est ce qui me fait penser que je me suis trompé dans le super de la classe voiture.
Je me permets de vous mettre mes codes des 3 classes ci dessous.
Merci beaucoup si vous pouvez m'aider.
Encore merci et à bientôt
Bruno
Ma classe Questionnaire
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class Questionnaire { public static void main(String[] args) { Vehicule A=new Vehicule(); Scanner lectureClavier=new Scanner(System.in); System.out.println("Quelle est la puissance de votre véhicule (en chevaux) ?"); A.puissance=lectureClavier.nextDouble(); System.out.println("Quelle est la couleur de votre véhicule ?"); A.couleur=lectureClavier.next(); System.out.println("Quel est le prix de votre véhicule"); A.prix=lectureClavier.nextDouble(); A.afficher(); Voiture B=new Voiture(); B.afficher(); }}
Ma classe Vehicule
Code:
1
2
3
4
5
6
7 public class Vehicule { double puissance; double prix; String couleur; public void afficher() { System.out.println("Votre véhicule fait "+puissance+" chevaux, est de couleur "+couleur+" et coûte "+prix+" ");} }
Ma classe Voiture
Code:
1
2
3
4
5 public class Voiture extends Vehicule { public void afficher() { super.afficher(); System.out.println("et c'est une voiture");} }