1) On donne dans un établissement scolaire : *Pour IJoignable : public String getEmail();// renvoi email public String getPhone(); //renvoi numéro téléphone * Pour une personne de l'établissement : Nom, prenom // compléter liste attributs void Affiche() // Entête seulement //Compléter méthodes * Pour un étudiant // compléter liste attributs void Affiche() // Affiche nom, prénom et classe * Pour un professeur // compléter liste attributs void Affiche() {} // Affiche nom, prénom et spécialité Sachant que chaque etudiant et professeur est une personne, et qu'une personne est IJoignable, Ecris en Java la classe IJoignable ainsi que les classes Personne, Etudiant et Professeur. Les constructeurs renferment tout les attributs de chaque classe. 2) Dans la méthode main du programme principal PPEtablissement : a) Créer une personne (justifier s'il y a probléme) b) Créer 3 étudiants et 2 professeurs c) Créer une liste de Personne d) Ajouter les étudiants et les professeurs dans la liste e) Afficher les informations des professeurs et étudiants de la liste f) -Retirer le dernier enregistrement de la liste Réponses : Classe IJoignable : public interface IJoignable { public String getEmail(); public String getPhone(); } Classe Personne : public class Personne implements IJoignable { private String nom; private String prenom; private String email; private String phone; public Personne(String nom, String prenom, String email, String phone) { this.nom = nom; this.prenom = prenom; this.email = email; this.phone = phone; } public String getNom() { return nom; } public String getPrenom() { return prenom; } @Override public String getEmail() { return email; } @Override public String getPhone() { return phone; } public void Affiche() { System.out.println(nom + " " + prenom); } } Classe Etudiant : public class Etudiant extends Personne { private String classe; public Etudiant(String nom, String prenom, String email, String phone, String classe) { super(nom, prenom, email, phone); this.classe = classe; } public String getClasse() { return classe; } @Override public void Affiche() { super.Affiche(); System.out.println("Classe : " + classe); } } Classe Professeur : public class Professeur extends Personne { private String specialite; public Professeur(String nom, String prenom, String email, String phone, String specialite) { super(nom, prenom, email, phone); this.specialite = specialite; } public String getSpecialite() { return specialite; } @Override public void Affiche() { super.Affiche(); System.out.println("Spécialité : " + specialite); } } Programme principal PPEtablissement : import java.util.ArrayList; import java.util.List; public class PPEtablissement { public static void main(String[] args) { // a) Créer une personne Personne personne = new Personne("Doe", "John", "johndoe@mail.com", "01.23.45.67.89"); // Cette personne ne peut pas être utilisée comme un étudiant ou un professeur car elle n'a pas de classe ou de spécialité. // b) Créer 3 étudiants et 2 professeurs Etudiant etudiant1 = new Etudiant("Dupont", "Alice", "alice.dupont@mail.com", "06.12.34.56.78", "1A"); Etudiant etudiant2 = new Etudiant("Martin", "Bob", "bob.martin@mail.com", "06.23.45.67.89", "2B"); Etudiant etudiant3 = new Etudiant("Lefevre", "Claire", "claire.lefevre@mail.com", "06.34.56.78.90", "1A"); Professeur professeur1 = new Professeur("Durand", "Eric", "eric.durand@mail.com", "01.23.45.67.89", "Mathématiques"); Professeur professeur2 = new Professeur("Girard", "Françoise", "francoise.girard@mail.com", // c) Créer une liste de Personne List<Personne> listePersonnes = new ArrayList<>(); // d) Ajouter les étudiants et les professeurs dans la liste listePersonnes.add(etudiant1); listePersonnes.add(etudiant2); listePersonnes.add(etudiant3); listePersonnes.add(professeur1); listePersonnes.add(professeur2); // e) Afficher les informations des professeurs et étudiants de la liste System.out.println("Liste des personnes :"); for (Personne personne : listePersonnes) { personne.Affiche(); } // f) Retirer le dernier enregistrement de la liste listePersonnes.remove(listePersonnes.size() - 1); System.out.println("Liste des personnes après suppression :"); for (Personne personne : listePersonnes) { personne.Affiche(); } } } Note : cette implémentation est basique et ne gère pas les éventuelles exceptions liées aux entrées utilisateur ou à la manipulation de listes vides.