From aca8cb51bf7508981a9cc0df8187659b2f928633 Mon Sep 17 00:00:00 2001 From: Zahra Gharagozloo Mazlaghan Date: Tue, 28 Apr 2026 20:42:02 +0330 Subject: [PATCH] Class HybridCar (Bonus) completed. --- src/main/java/org/model/HybridCar.java | 71 ++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/main/java/org/model/HybridCar.java diff --git a/src/main/java/org/model/HybridCar.java b/src/main/java/org/model/HybridCar.java new file mode 100644 index 0000000..31aa32b --- /dev/null +++ b/src/main/java/org/model/HybridCar.java @@ -0,0 +1,71 @@ +package org.model; + +import org.behavior.Chargeable; +import org.behavior.Refuelable; + +public class HybridCar extends Car implements Chargeable, Refuelable { + + private int batteryCapacity; + private double chargeLevel; + private double fuelLevel; + private String fuelType; + + public HybridCar(String brand, String model, int year, + double mileage, int seats, + int batteryCapacity, double chargeLevel, + double fuelLevel, String fuelType) + { + super(brand, model, year, mileage, seats); + this.batteryCapacity = batteryCapacity; + this.chargeLevel = chargeLevel; + this.fuelLevel = fuelLevel; + this.fuelType = fuelType; + } + + @Override + public String getEnergyType() { + return ("Hybrid (Gas and Electric)"); + } + + //Implement Refuelable + public void refuel(double amount) { + if (amount <= 0) { + System.out.println("Invalid amount!"); + return; + } + if (fuelLevel + amount > 100) {System.out.println("Invalid amount!");} + else {System.out.println("Refuelable!");} + } + + //Implement Chargeable + public void charge(double amount) { + if (amount <= 0) { + System.out.println("Invalid amount!"); + return; + } + if (chargeLevel + amount > 100) {System.out.println("Invalid amount!");} + else {System.out.println("Refuelable!");} + } + + @Override + public void showDetails() { + super.showDetails(); + System.out.println(fuelLevel); + System.out.println(fuelType); + System.out.println(batteryCapacity); + System.out.println(chargeLevel); + } + + @Override + public boolean needsService(Vehicle v) { + double mileage = v.getMileage(); + return (mileage > 10000); + } + + @Override + public void performService() { + System.out.println("Engine oil changed and battery system checked"); + chargeLevel = 100; + fuelLevel = 100; + } +} \ No newline at end of file