Héritage d'attributs |
Exercice. Personne, Skieur et Slalommeur
1. Ecrire une classe Personne ayant pour attributs privés
une chaîne
de caractères nom et un entier age.
Ecrire un constructeur prenant en arguments une
chaîne
de caractères et un entier.
Ecrire les accesseurs correspondant aux attributs.
Ecrire une méthode toString
permettant
d'afficher le nom d'une personne suivi de son age entre
parenthèses
(exemple : Jean Dupont (36 ans)).
Ecrire une méthode main pour tester
la
classe Personne.
2. Ecrire une classe Skieur, sous-classe de la classe
Personne, ayant pour attribut privé
supplémentaire un
booléen forfait (qui est vrai si le skieur a un forfait,
faux sinon).
Essayer de compiler la classe personne, sans rien
ajouter d'autre. Que se passe-t-il ?
Ecrire un constructeur prenant en arguments une
chaîne nom, un entier age, et un booléen forfait.
Ce constructeur devra commencer par : super(nom,age) pour
construire
d'abord la partie Personne de l'objet Skieur. Que se
passe-t-il à la compilation si vous mettez en commentaire la
ligne contenant l'appel à super
?
Ecrire les accesseurs correspondant à
l'attribut forfait.
Ecrire une méthode toString qui
affichera une phrase comme : Jean Dupont (36 ans) a un forfait
(ou n'a pas de forfait suivant le cas). On peut faire appel
à la méthode toString de la classe Personne
en écrivant : super.toString()
Ecrire une méthode main pour tester
la
classe Skieur.
3. Dans la méthode toString de Skieur, que se passe-t-il si vous
essayez de récupérer le nom
et l'âge du skieur sans
passer par les accesseurs de la classe Personne ? Modifier les attributs
de Personne pour qu'ils
soient protected : que se
passe-t-il maintenant dans la méthode toString ? Modifiez aussi
l'attribut de la classe Skieur
pour qu'il soit protected.
4. Ecrire une classe Slalommeur, sous-classe de la
classe Skieur, ayant pour attribut supplémentaire temps
de
type double (représentant son temps à l'épreuve de
slalom).
Ecrire un constructeur prenant en argument un Skieur.
Ce constructeur servira à inscrire des skieurs à
l'épreuve de slalom, et initialisera leur temps à 0. Si
le skieur n'a pas de forfait, le constructeur affichera un message
indiquant : Jean Dupont
doit se procurer un forfait avant le début de l'épreuve.
Ecrire les accesseurs correspondant à
l'attribut temps. L'accesseur permettant de régler le
temps devra vérifier que le slalommeur a un forfait ; dans le
cas contraire, l'attribut temps
est réglé à 0 car sans forfait on ne peut
pas
participer !
Ecrire une méthode toString qui
affichera une phrase comme : Jean Dupont (36 ans) : 188 secondes
(ou bien si le skieur n'a pas de forfait : Jean Dupont ne peut pas
participer sans forfait !).
Ecrire une méthode main pour tester
la
classe Slalommeur.