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 @Override public void refuel(double amount) { if (amount < 0) System.out.println("This amount is unacceptable."); if (fuelLevel == 100) System.out.println("fuel level is already 100%."); else { fuelLevel += amount; if (fuelLevel >= 100) { fuelLevel = 100; System.out.println("fuel level reached 100%."); } else System.out.println("fuel level increased."); } } // TODO: Override showDetails() // Call super.showDetails() // Print fuel level and fuel type @Override public void showDetails() { super.showDetails(); System.out.println(" | fuelLevel: " + fuelLevel + " | fuel type: " + fuelType); } @Override public boolean needsService(Vehicle v) { return super.needsService(v); } @Override public void performService() { super.performService(); System.out.println("engine and oil checked"); this.fuelLevel = 100; } }