package org.model; /* * GasCar extends Car. * Inherits Serviceable from Car. * * Service logic for GasCar: * - needsService(): return true if mileage > 12000 * - performService(): * Print "Engine oil changed" * Reset fuelLevel to 100 */ import org.behavior.Refuelable; public class GasCar extends Car implements Refuelable { private double fuelLevel; private String fuelType; public GasCar(String brand, String model, int year, double mileage, int seats, double fuelLevel, String fuelType) { super(brand, model, year, mileage, seats); this.fuelLevel = fuelLevel; this.fuelType = fuelType; } // TODO: Override getEnergyType() → return fuelType + " (Gas)" @Override public String getEnergyType() { return fuelType+" (Gas)" ; } // TODO: Implement refuel(double amount) // Validate amount // Cap at 100 public void refuel(double amount) { if (amount<0) { System.out.println("Error : the refuel amount can not be negative. :)"); return; } if (amount==0) { System.out.println("Nothing for refuel! :)"); return; } if (amount>0) { fuelLevel+=amount; if(fuelLevel>100) { fuelLevel=100; System.out.println("Tank is full :)"); } else System.out.println("fuel level : " + fuelLevel + "%"); } } // TODO: Override showDetails() @Override public void showDetails() {} @Override public boolean needsService(Vehicle v) { if (this.getMileage() > 12000) return true; return false; } @Override public void performService() { System.out.println("Engine oil changed"); fuelLevel = 100 ; System.out.println("fuel level : 100%"); } }