diff --git a/src/main/java/org/model/Car.java b/src/main/java/org/model/Car.java index b9f7f44..0f959c4 100644 --- a/src/main/java/org/model/Car.java +++ b/src/main/java/org/model/Car.java @@ -34,10 +34,10 @@ public abstract class Car extends Vehicle implements Serviceable { @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("brand : " + GetBrand()) ; + System.out.println("model : " + GetModel() ) ; + System.out.println("year : " + GetYear() ) ; + System.out.println("mileage : " + GetMileage()) ; System.out.println("seats : " + seats) ; } diff --git a/src/main/java/org/model/ElectricCar.java b/src/main/java/org/model/ElectricCar.java index 07fa909..6ecd59a 100644 --- a/src/main/java/org/model/ElectricCar.java +++ b/src/main/java/org/model/ElectricCar.java @@ -26,6 +26,7 @@ public class ElectricCar extends Car implements Chargeable { this.batteryCapacity = batteryCapacity; this.chargeLevel = chargeLevel; } + @Override // TODO: Override getEnergyType() → return "Electric" public String getEnergyType() @@ -35,7 +36,7 @@ public class ElectricCar extends Car implements Chargeable { // TODO: Override showDetails() @Override - public String showDetails() + public void showDetails() { super.showDetails() ; System.out.println("battry capacity : " + batteryCapacity) ; @@ -57,6 +58,7 @@ public class ElectricCar extends Car implements Chargeable { } } } + @Override public boolean needService(vehicle v) { return (this.Getmileage()> 8000) @@ -65,7 +67,7 @@ public class ElectricCar extends Car implements Chargeable { public void performService() { System.out.println("Battery system checked") ; - chargeLevel = 100 ; + chargeLevel = 100 ; } // TODO: Implement charge(double amount) // Validate negative diff --git a/src/main/java/org/model/GasCar.java b/src/main/java/org/model/GasCar.java index 58b3e45..1a67730 100644 --- a/src/main/java/org/model/GasCar.java +++ b/src/main/java/org/model/GasCar.java @@ -26,6 +26,44 @@ public class GasCar extends Car implements Refuelable { this.fuelLevel = fuelLevel; this.fuelType = fuelType; } + @Override + public boolean needsService(Vehicle v) + { + return this.GetMileage()> 12000 ; + } + @Override + public void performService() + { + System.out.println("Engine oil changed") ; + fuelLevel = 100 ; + } + @Override + public String getEnergyType() + { + return fuelType + " (Gas)" ; + } + @Override + public void refuel(double amount) + { + if (amount < 0) + { + System.out.println("no ! ") ; + } + else + { + fuelLevel = fuelLevel + amount ; + if (fuelLevel > 100) + fuelLevel = 100 ; + } + } + @Override + public void showDetails() + { + super.showDetails() ; + System.out.println("fuel level : " + fuelLevel) ; + System.out.println("fuel type : " + fuelType) ; + + } // TODO: Override getEnergyType() → return fuelType + " (Gas)" diff --git a/src/main/java/org/model/HybridCar.java b/src/main/java/org/model/HybridCar.java new file mode 100644 index 0000000..5da3abd --- /dev/null +++ b/src/main/java/org/model/HybridCar.java @@ -0,0 +1,80 @@ +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, + double fuelLevel, String fuelType, int batteryCapacity, double chargeLevel) { + + super(brand, model, year, mileage, seats); + this.fuelLevel = fuelLevel; + this.fuelType = fuelType; + this.batteryCapacity = batteryCapacity; + this.chargeLevel = chargeLevel; + } + @Override + + // TODO: Override getEnergyType() → return "Electric" + public String getEnergyType() + { + return "Electric + fuel : " + fuelType ; + } + @Override + public void showDetails() + { + super.showDetails() ; + System.out.println("battry capacity : " + batteryCapacity) ; + System.out.println("charge level : " + chargeLevel) ; + System.out.println("fuel level : " + fuelLevel) ; + System.out.println("fuel type : " + fuelType) ; + } + @Override + public void charge(double amount) + { + if (amount < 0 ) + { + System.out.println("No") ; + } + else + { + chargeLevel = chargeLevel + amount ; + if (chargeLevel > 100) + { + chargeLevel = 100 ; + } + } + } + @Override + public void refuel(double amount) + { + if (amount < 0) + { + System.out.println("no ! ") ; + } + else + { + fuelLevel = fuelLevel + amount ; + if (fuelLevel > 100) + fuelLevel = 100 ; + } + } + @Override + public boolean needsService(Vehicle v) + { + return this.GetMileage() > 10000 ; + } + @Override + public void performService() + { + System.out.println("Battery system checked") ; + chargeLevel = 100 ; + System.out.println("Engine oil changed") ; + fuelLevel = 100 ; + } +} \ No newline at end of file diff --git a/src/main/java/org/model/SportsCar.java b/src/main/java/org/model/SportsCar.java index 2f8e459..a8ec66c 100644 --- a/src/main/java/org/model/SportsCar.java +++ b/src/main/java/org/model/SportsCar.java @@ -23,6 +23,27 @@ public class SportsCar extends GasCar { this.zeroToHundred = zeroToHundred; } + @Override + public boolean needsService(Vehicle v) + { + return this.GetMileage() > 5000 ; + } + @Override + public void performService() + { + System.out.println("High-performance brake system checked") ; + + } + @Override + public void showDetails() + { + System.out.println("*details*") + super.showDetails() ; + System.out.println("0 --> 100 " + zeroToHundred) ; + + + } + // TODO: Override showDetails() // Print header diff --git a/src/main/java/org/util/VehicleInspector.java b/src/main/java/org/util/VehicleInspector.java index c83c420..f51df22 100644 --- a/src/main/java/org/util/VehicleInspector.java +++ b/src/main/java/org/util/VehicleInspector.java @@ -13,6 +13,18 @@ public class VehicleInspector { public static void inspect(Vehicle v) { v.basicInfo(); + if (v instanceof ElectricCar) + { + System.out.println("Check battery system") ; + } + else if (v instanceof SportsCar ) + { + System.out.println("Check brakes and performance") ; + } + else if (v instanceof GasCar) + { + System.out.println("Check engine and oil") ; + } // TODO: // If ElectricCar → print "Check battery system"