// Classe abstraite Vehicule
public abstract class Vehicule {
private String marque;
private String immatriculation;
public Vehicule(String marque, String immatriculation) {
[Link] = marque;
[Link] = immatriculation;
}
public String getMarque() {
return marque;
}
public String getImmatriculation() {
return immatriculation;
}
public abstract double calculerCoutLocation();
}
// Classe Voiture
public class Voiture extends Vehicule {
private int nbJoursLocation;
private double tarifJournalier;
public Voiture(String marque, String immatriculation, int nbJoursLocation, double tarifJournalier) {
super(marque, immatriculation);
[Link] = nbJoursLocation;
[Link] = tarifJournalier;
}
@Override
public double calculerCoutLocation() {
return nbJoursLocation * tarifJournalier;
}
}
// Classe Camion
public class Camion extends Vehicule {
private double nbKm;
private double tarifKm;
public Camion(String marque, String immatriculation, double nbKm, double tarifKm) {
super(marque, immatriculation);
[Link] = nbKm;
[Link] = tarifKm;
}
@Override
public double calculerCoutLocation() {
return nbKm * tarifKm;
}
}
// Classe principale MainApp
import [Link].*;
public class MainApp {
private static List<Vehicule> parcVehicules = new ArrayList<>();
public static void main(String[] args) {
[Link](new Voiture("Peugeot", "123-ABC", 5, 400));
[Link](new Camion("Mercedes", "456-DEF", 300, 2.5));
[Link](new Voiture("Renault", "789-GHI", 3, 350));
[Link](new Camion("Volvo", "101-JKL", 500, 3));
afficherCoutsLocation();
[Link]("\n-> Coût total de location : " + coutTotalLocation());
List<Vehicule> chers = getVehiculesChers(1500);
[Link]("\n-> Véhicules dont le coût dépasse 1500 :");
for (Vehicule v : chers) {
[Link]([Link]() + " - " + [Link]() + " - " + [Link]());
}
}
public static void afficherCoutsLocation() {
for (Vehicule v : parcVehicules) {
if (v instanceof Voiture) {
[Link]("[Voiture] " + [Link]() +
" (" + [Link]() + ") : " +
[Link]() + " DH");
} else if (v instanceof Camion) {
[Link]("[Camion] " + [Link]() +
" (" + [Link]() + ") : " +
[Link]() + " DH");
}
}
}
public static double coutTotalLocation() {
double total = 0;
for (Vehicule v : parcVehicules) {
total += [Link]();
}
return total;
}
public static List<Vehicule> getVehiculesChers(double seuil) {
List<Vehicule> result = new ArrayList<>();
for (Vehicule v : parcVehicules) {
if ([Link]() > seuil) {
[Link](v);
}
}
return result;
}
}