Programmation Java 1A - TP19
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.