From 77bc77c1ddb9ccb80662c6050171d5980ad200f0 Mon Sep 17 00:00:00 2001 From: Arefe Date: Mon, 27 Apr 2026 21:22:47 +0330 Subject: [PATCH] create and complete HybridCar class --- src/main/java/org/model/HybridCar.java | 62 ++++++++++++++++++++++++++ 1 file changed, 62 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..bdf3b09 --- /dev/null +++ b/src/main/java/org/model/HybridCar.java @@ -0,0 +1,62 @@ +package org.model; + +import org.behavior.Chargeable; +import org.behavior.Refuelable; + +public class HybridCar extends Car implements Chargeable, Refuelable{ + private double chargeLevel; + private double fuelLevel; + + public HybridCar(String brand, String model, int year, + double mileage, int seats, + double fuelLevel, double chargeLevel) { + + super(brand, model, year, mileage, seats); + this.fuelLevel = fuelLevel; + this.chargeLevel = chargeLevel; + } + + @Override + public boolean needsService(Vehicle v) + { + if (v.getMileage() > 10000) + { + return true; + } + return false; + } + + @Override + public void performService() + { + System.out.println("Engine oil changed and battery system checked"); + this.chargeLevel = 100; + this.fuelLevel = 100; + } + + public void charge(double amount) { + if (amount < 0) { + System.out.println("Cannot charge negative amount!"); + return; + } + this.chargeLevel += amount; + if (this.chargeLevel > 100) { + this.chargeLevel = 100; + } + } + + public void refuel(double amount) + { + if (amount < 0) + { + System.out.println("Cannot refuel negative amount!"); + return; + } + this.fuelLevel += amount; + if (this.fuelLevel > 100) + { + this.fuelLevel = 100; + } + System.out.println("Refueled. Current fuel level: " + this.fuelLevel); + } +}