Vous êtes sur la page 1sur 4

package tp_1;

public class Employe {


private String nom;
private String prenom;
private int age;
private String poste;

// Constructeur
public Employe(String nom, String prenom, int age, String poste) {
this.nom = nom;
this.prenom = prenom;
this.age = age;
this.poste = poste;
}

// Méthodes d'accès
public String getNom() {
return nom;
}

public void setNom(String nom) {


this.nom = nom;
}

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;
}

public String getPoste() {


return poste;
}

public void setPoste(String poste) {


this.poste = poste;
}

public static void main(String[] args) {


// Exemple d'utilisation de la classe Employe
Employe employe = new Employe("ahmed", "hassan", 45, "chef d'equipe");
System.out.println("Nom: " + employe.getNom());
System.out.println("Prénom: " + employe.getPrenom());
System.out.println("Âge: " + employe.getAge());
System.out.println("Poste: " + employe.getPoste());
}
}
public class Cadre extends Employe {
// Constructeur par défaut
public Cadre() {
super("", "", 0, "");
}

// Constructeur initialisant toutes les propriétés


public Cadre(String nom, String prenom, int age, String poste) {
super(nom, prenom, age, poste);
}

// Redéfinition éventuelle des méthodes d'accès aux propriétés


}

public class Vendeur extends Employe {


// Constructeur par défaut
public Vendeur() {
super("", "", 0, "");
}

// Constructeur initialisant toutes les propriétés


public Vendeur(String nom, String prenom, int age, String poste) {
super(nom, prenom, age, poste);
}

// Redéfinition éventuelle des méthodes d'accès aux propriétés


}
// 5///
public class Cadre extends Employe {
// Constructeur par défaut
public Cadre() {
super("", "", 0, "");
}

// Constructeur initialisant toutes les propriétés


public Cadre(String nom, String prenom, int age, String poste) {
super(nom, prenom, age, poste);
}

// Redéfinition de la méthode getInfo()


@Override
public void getInfo() {
System.out.println("Informations du cadre : ");
super.getInfo();
}

// Redéfinition de la méthode getSalaire()


@Override
public double getSalaire() {
// Logique de calcul du salaire pour un cadre
return /* calcul du salaire pour un cadre */;
}
}

public class Vendeur extends Employe {


// Constructeur par défaut
public Vendeur() {
super("", "", 0, "");
}
// Constructeur initialisant toutes les propriétés
public Vendeur(String nom, String prenom, int age, String poste) {
super(nom, prenom, age, poste);
}

// Redéfinition de la méthode getInfo()


@Override
public void getInfo() {
System.out.println("profil vendeur : ");
super.getInfo();
}

// Redéfinition de la méthode getSalaire()


@Override
public double getSalaire() {
// Logique de calcul du salaire pour un vendeur
return /* calcul du salaire pour un vendeur */;
}
}
///6
import java.util.ArrayList;
import java.util.List;

// Classe générique pour la gestion d'une liste d'objets


class SystemeListe<T> {
protected List<T> listeObjets;

public SystemeListe() {
listeObjets = new ArrayList<>();
}

public void ajouterObjet(T objet) {


listeObjets.add(objet);
}

public void retirerObjet(T objet) {


listeObjets.remove(objet);
}

public void afficherListe() {


for (T objet : listeObjets) {
System.out.println(objet.toString());
}
}
}

// Classe ListeEmployes dérivée de SystemeListe pour gérer une liste


d'employés
public class ListeEmployes extends SystemeListe<Employe> {
public static void main(String[] args) {
// Exemple d'utilisation de ListeEmployes
ListeEmployes listeEmployes = new ListeEmployes();

// Ajout de nouveaux employés à la liste


Employe employe1 = new Cadre("ahmed", "hassan", 45, "chef d'equipe");
Employe employe2 = new Vendeur("Smith", "Jane", 28, "Vente");
listeEmployes.ajouterObjet(employe1);
listeEmployes.ajouterObjet(employe2);
// Affichage de la liste des employés
listeEmployes.afficherListe();
}
}

Vous aimerez peut-être aussi