// Interface Employe
public interface Employe {
double calculerSalaire();
String obtenirDescription();
// Abstract class Personne
public abstract class Personne {
private static int nextNumero = 1;
private String nom;
private int age;
private int numero;
public Personne() {
[Link] = "";
[Link] = 0;
[Link] = nextNumero++;
public Personne(String nom, int age) {
[Link] = nom;
[Link] = age;
[Link] = nextNumero++;
public Personne(Personne autre) {
[Link] = [Link];
[Link] = [Link];
[Link] = nextNumero++;
public abstract void afficherInfos();
public String getNom() {
return nom;
public void setNom(String nom) {
[Link] = nom;
public int getAge() {
return age;
public void setAge(int age) {
[Link] = age;
public int getNumero() {
return numero;
}
// EmployeSalarie class
public class EmployeSalarie extends Personne implements Employe {
private float salaireFixe;
private int nbrHrSup;
private float prixHrSup;
public EmployeSalarie(String nom, int age, float salaireFixe, int nbrHrSup, float
prixHrSup) {
super(nom, age);
[Link] = salaireFixe;
[Link] = nbrHrSup;
[Link] = prixHrSup;
@Override
public double calculerSalaire() {
return salaireFixe + (nbrHrSup * prixHrSup);
@Override
public String obtenirDescription() {
return "Nom: " + getNom() + ", Age: " + getAge() + ", Salaire: " +
calculerSalaire();
@Override
public void afficherInfos() {
[Link]("Nom: " + getNom() + ", Age: " + getAge());
// EmployeContractuel class
public class EmployeContractuel extends Personne implements Employe {
private float salaireMensuel;
private Date dateDebutContrat;
private Date dateFinContrat;
public EmployeContractuel(String nom, int age, float salaireMensuel, Date
dateDebutContrat, Date dateFinContrat) {
super(nom, age);
[Link] = salaireMensuel;
[Link] = dateDebutContrat;
[Link] = dateFinContrat;
@Override
public double calculerSalaire() {
return salaireMensuel * (([Link]() - [Link]())
/ (1000 * 60 * 60 * 24 * 30L));
@Override
public String obtenirDescription() {
return "Nom: " + getNom() + ", Age: " + getAge() + ", Salaire annuel: " +
calculerSalaire();
@Override
public void afficherInfos() {
[Link]("Nom: " + getNom() + ", Age: " + getAge());
// Departement class
import [Link];
public class Departement {
private ArrayList<Personne> employes = new ArrayList<>();
public void ajouterEmploye(Personne employe) {
[Link](employe);
public void afficherTousEmployes() {
for (Personne employe : employes) {
if (employe instanceof Employe) {
[Link](((Employe) employe).obtenirDescription());
}
}
// Main class
import [Link];
public class Main {
public static void main(String[] args) {
EmployeSalarie emp1 = new EmployeSalarie("John Doe", 30, 2000.0f, 10, 20.0f);
EmployeContractuel emp2 = new EmployeContractuel("Jane Smith", 25, 1500.0f, new
Date(2024, 1, 1), new Date(2024, 12, 31));
Departement departement = new Departement();
[Link](emp1);
[Link](emp2);
[Link]();