09 Mar2016
Héritage à plusieurs niveaux
Objectifs :
- Implémentation correcte de l’évolution des objets dans le temps (héritage).
- Redéfinition des méthodes.
- Appel aux méthodes de la classe mère avec super.
- Appel aux constructeurs de la classe mère.
Énoncé :
Soit le diagramme de classe suivant:
Visibilités dans un diagramme de classe :
# : protected
- : private
+ : public
Description
- La classe Etudiant hérite de la classe Personne.
- La classe Professeur hérite de la classe Employe et la classe Employe hérite de la classe Personne.
- Un Etudiant est une Personne.
- Un Professeur est un Employe et un Employe est une Personne.
Travail à faire
- Développer les classes dans le package "ma.exelib.projet.classes".
- Chaque classe doit contenir un constructeur d'initialisation.
- Chaque classe doit redéfinir la méthode toString().
- Développer une classe de Application dans le package "ma.exelib.projet.test", dans cette classe on demande de créer :
- deux étudiants.
- deux employés.
- deux professeurs.
- afficher les informations de chaque personne.
Exemple d’exécution :
La liste des employes :
Je suis DOUK Rachid mon salaire est: 10000.0 DH
Je suis NGOYE Roland mon salaire est: 10000.0 DH
La liste des étudiants :
Je suis OBAKA Med mon CNE est: 65678754
Je suis ALSENY Thomas mon CNE est: 87543543
La liste des professeurs :
Je suis OBA Kevin mon salaire est: 5700.0 DH ma spécialité est: JAVA/JEE
Je suis MAGASSOUBA Cheick mon salaire est: 5000.0 DH ma spécialité est: Mathématique
Structure de projet
La classe Personne
package ma.exelib.projet.classe; public class Personne { protected int id; protected String nom; protected String prenom; private static int count; public Personne(String nom, String prenom) { this.id = ++count; this.nom = nom; this.prenom = prenom; } @Override public String toString() { return "Je suis " + this.nom.toUpperCase() + " " + this.prenom.substring(0, 1).toUpperCase() + "" + this.prenom.substring(1).toLowerCase(); } }
La classe Etudiant
package ma.exelib.projet.classe; public class Etudiant extends Personne { private String cne; public Etudiant(String nom, String prenom, String cne) { super(nom, prenom); this.cne = cne; } @Override public String toString() { return super.toString() + " mon CNE est: " + this.cne; } }
La classe Employe
package ma.exelib.projet.classe; public class Employe extends Personne { protected double salaire; public Employe(String nom, String prenom, double salaire) { super(nom, prenom); this.salaire = salaire; } public String toString() { return super.toString() + " mon salaire est: " + this.salaire + " DH"; } }
La classe Professeur
package ma.exelib.projet.classe; public class Professeur extends Employe { private String specialite; public Professeur(String nom, String prenom, double salaire, String specialite) { super(nom, prenom, salaire); this.specialite = specialite; } @Override public String toString() { return super.toString() + " ma spécialité est: " + this.specialite; } }
La classe Application
package ma.exelib.projet.test; import ma.exelib.projet.classe.Employe; import ma.exelib.projet.classe.Etudiant; import ma.exelib.projet.classe.Professeur; public class Application { public static void main(String[] main) { Employe[] employes = new Employe[2]; employes[0] = new Employe("Douk", "Rachid", 10000); employes[1] = new Employe("Ngoye", "Roland", 10000); System.out.println("La liste des employes : "); for (Employe e : employes) System.out.println("\t" + e); Etudiant[] etudiants = new Etudiant[2]; etudiants[0] = new Etudiant("Obaka", "Med", "65678754"); etudiants[1] = new Etudiant("Alseny", "Thomas", "87543543"); System.out.println("La liste des étudiants : "); for (Etudiant e : etudiants) System.out.println("\t" + e); Professeur[] professeurs = new Professeur[2]; professeurs[0] = new Professeur("Oba", "Kevin", 5700, "JAVA/JEE"); professeurs[1] = new Professeur("Magassouba", "Cheick", 5000, "Mathématique"); System.out.println("La liste des professeurs : "); for (Professeur p : professeurs) System.out.println("\t" + p); } }
Sélectionnez le fichier à afficher.
|
Nom | Taille | Clics | Téléchargements |
Heritage_Plusieurs_Niveaux.zip | 10.61 Ko | 3321 | Télécharger |