From 78137e32705bce5a9d6fa0c06e58353d6fc1c65c Mon Sep 17 00:00:00 2001 From: Matin Date: Mon, 27 Apr 2026 12:00:55 +0430 Subject: [PATCH] ElectricCar + car + Vehicle --- src/main/java/org/model/Car.java | 25 ++++++++++++++++ src/main/java/org/model/ElectricCar.java | 38 +++++++++++++++++++++++- src/main/java/org/model/Vehicle.java | 29 +++++++++++++++++- 3 files changed, 90 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/model/Car.java b/src/main/java/org/model/Car.java index cb81367..b9f7f44 100644 --- a/src/main/java/org/model/Car.java +++ b/src/main/java/org/model/Car.java @@ -19,12 +19,28 @@ public abstract class Car extends Vehicle implements Serviceable { double mileage, int seats) { // TODO: Call super constructor + super(brand , model , year , mileage ); this.seats = seats; } // TODO: Override getEnergyType() → return "Unknown" + @Override + public String getEnergyType() + { + return "Unknown" ; + } // TODO: Override showDetails() + @Override + public void showDetails() + { + System.out.println("brand : " + GetBrand) ; + System.out.println("model : " + GetModel ) ; + System.out.println("year : " + GetYear ) ; + System.out.println("mileage : " + GetMileage) ; + System.out.println("seats : " + seats) ; + + } /* * Implement Serviceable methods: @@ -37,4 +53,13 @@ public abstract class Car extends Vehicle implements Serviceable { * performService(): * - Print: "General car service completed" */ + @Override + public boolean needsService(Vehicle v) + { + return this.GetMileage() > 10000 ; + } + @Override void performService(){ + System.out.println("General car service completed") ; + } + } diff --git a/src/main/java/org/model/ElectricCar.java b/src/main/java/org/model/ElectricCar.java index ee9f5f9..07fa909 100644 --- a/src/main/java/org/model/ElectricCar.java +++ b/src/main/java/org/model/ElectricCar.java @@ -28,9 +28,45 @@ public class ElectricCar extends Car implements Chargeable { } // TODO: Override getEnergyType() → return "Electric" + public String getEnergyType() + { + return "Electric" ; + } // TODO: Override showDetails() - + @Override + public String showDetails() + { + super.showDetails() ; + System.out.println("battry capacity : " + batteryCapacity) ; + System.out.println("charge level : " + chargeLevel) ; + } + @Override + public void charge(double amount) + { + if (amount < 0 ) + { + System.out.println("No") ; + } + else + { + chargeLevel = chargeLevel + amount ; + if (chargeLevel > 100) + { + chargeLevel = 100 ; + } + } + } + public boolean needService(vehicle v) + { + return (this.Getmileage()> 8000) + } + @Override + public void performService() + { + System.out.println("Battery system checked") ; + chargeLevel = 100 ; + } // TODO: Implement charge(double amount) // Validate negative // Cap at 100 diff --git a/src/main/java/org/model/Vehicle.java b/src/main/java/org/model/Vehicle.java index 70615a9..6277458 100644 --- a/src/main/java/org/model/Vehicle.java +++ b/src/main/java/org/model/Vehicle.java @@ -21,12 +21,39 @@ public abstract class Vehicle { } // TODO: Create getters for all fields - + public String GetBrand() + { + return this.brand ; + } + public String GetModel() + { + return this.model ; + } + public int GetYear() + { + return this.year ; + } + public double GetMileage() + { + return this.mileage ; + } // TODO: Implement addMileage(double km) + public void AddMileage(double km) + { + if (km < 0 ) + { + System.out.println("error !") ; + } + else + { + this.mileage = this.mileage + km ; + } + } // If km is negative → print error // Otherwise increase mileage // TODO: Declare abstract method getEnergyType() + public abstract String getEnergyType(); public void basicInfo() { System.out.println(