public class AlquilerVehiculo {
public int matricula, nro_dias;
public double precio;
public AlquilerVehiculo() {}
public AlquilerVehiculo(int matricula, int nro_dias, double precio) {
this.matricula = matricula; this.nro_dias = nro_dias;
this.precio = precio;
}
public double calcularPrecio(){
precio = this.nro_dias * 50;
return precio;
}
//Get agregado para obtener el precio.
public double getPrecio() {
return precio;
}
}
class Coches extends AlquilerVehiculo{
public Coches(int matricula, int nro_dias, double precio) {
super(matricula, nro_dias, precio);
}
@Override
public double calcularPrecio(){
precio = super.calcularPrecio() + (this.nro_dias * 1.5);
return precio;
}
}
class Microbuses extends AlquilerVehiculo{
public Microbuses(int matricula, int nro_dias, double precio) {
super(matricula, nro_dias, precio);
}
@Override
public double calcularPrecio(){
precio = super.calcularPrecio() + 2;
return precio;
}
}
class Furgonetas extends AlquilerVehiculo{
public int PMA;
public Furgonetas(int matricula, int nro_dias, double precio, int PMA) {
super(matricula, nro_dias, precio);
this.PMA = PMA;
}
@Override
public double calcularPrecio(){
precio = super.calcularPrecio() + (this.nro_dias * PMA);
return precio;
}
}
class Camiones extends AlquilerVehiculo{
public Camiones(int matricula, int nro_dias, double precio) {
super(matricula, nro_dias, precio);
}
@Override
public double calcularPrecio(){
precio = super.calcularPrecio() + 4;
return precio;
}
}
//Clase para probar la jerarquia de clases.
class Test2{
public static void main(String[] args) {
Coches alquiler1 = new Coches(1004, 2, 2.5);
alquiler1.calcularPrecio();
//Asi la salida hacia un file.
System.out.println("Costo del arquiler de coche es de $: " + alquiler1.getPrecio());
Furgonetas alquiler2 = new Furgonetas(1004, 2, 2.5, 3);
alquiler2.calcularPrecio();
System.out.println("Costo del arquiler de la furgoneta es de $: " + alquiler2.getPrecio());
}
}