Aller au contenu

Solution TP Héritage - Polymorphisme

Classe Personne


package heritage;

/**
 * Classe mère
 * @author Philippe
 *
 */
public class Personne {

	private String prenom;
	private int age;

	public Personne() {
		super();
	}

	public Personne(String prenom, int age) {
		super();
		this.prenom = prenom;
		this.age = age;
	}

	public Personne(String prenom) {
		this(prenom, 0);
	}

	public String getPrenom() {
		return prenom;
	}

	public void setPrenom(String prenom) {
		this.prenom = prenom;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	// ============ Méthodes spécifiques ==========

	public void bonjour()

	{
		System.out.println("Bonjour,  tu es "+prenom+" et tu as "+age+" ans");

	}

	public void manger(String fruit)

	{
		System.out.println("Miam miam, c'est bon ce fruit, "+fruit+" !");

	}

	public void dormir()

	{
		System.out.println("Rrrrrrr Rrrrrrr");

	}	


	@Override
	public String toString() {
		return this.prenom;
	}
}

Classe Apprenant

package heritage;

/**
 * Classe fille
 * @author Philippe
 *
 */
public class Apprenant extends Personne{

	private String lieuDeTravail ;
	public enum Os {INDEFINI, WINDOWS, MAC, LINUX};
	private Os systeme;


	public Apprenant() {
		super(null,0);
	}

	/**
	 * 	écriture du constructeur d'objet Apprenant devant recevoir les
	arguments prenom et age en tant que Personne plus les attributs
	spécifiques à Apprenant

	 * @param prenom String
	 * @param age int
	 * @param lieuDeTravail String 
	 * @param os String
	 */
	public Apprenant(String prenom, int age, String ville, Os systeme)
	{
		// appel au constructeur de Personne en lui envoyant des paramètres prenom et age
		super(prenom,age); 

		// affectation des attributs spécifiques
		this.lieuDeTravail = ville;
		this.systeme = systeme;
	}

	public void travailler()

	{
		System.out.println("Dur dur Java !");

	}

	public void chomer()

	{
		System.out.println("Ah que j'aime les pauses café ...");

	}

	@Override
	public void bonjour()

	{
		StringBuilder message = new StringBuilder();

		super.bonjour();

		if (systeme == Os.INDEFINI)	{message.append("Tu ne connais pas encore ton OS !");}
		else if(systeme == Os.WINDOWS) {message.append("Tu vas bosser sur Windows ! Super, comme en formation !");}
		else if(systeme == Os.LINUX) {message.append("Tu vas bosser sur Linux ! Tu aimes la liberté !");}
		else {message.append("Tu vas bosser sur Mac ! Ouille ! Mais bon, un linux se cache sous le capot...");}

		message.append("\n Ton lieu de travail est à "+lieuDeTravail);

		System.out.println(message);
	}
}

Résultat que vous devez obtenir dans la console

Bonjour, tu es Philippe et tu as 54 ans
Tu vas bosser sur Windows ! Super, comme en formation !
Ton lieu de travaille est à Montreuil
Dur dur Java !
Miam miam, c'est bon ce fruit, banane !
Ah que j'aime les pauses café ...
Rrrrrrr Rrrrrrr

Bonjour, tu es Josselin et tu as 34 ans
Miam miam, c'est bon ce fruit, pizza !
Rrrrrrr Rrrrrrr

Bonjour, tu es Anissa et tu as 23 ans
Tu vas bosser sur Mac ! Ouille ! Mais bon, un linux se cache sous le capot...
 Ton lieu de travaille est à Montreuil
Miam miam, c'est bon ce fruit, chocolat !
Rrrrrrr Rrrrrrr