64 lines
1.2 KiB
Java
64 lines
1.2 KiB
Java
package org.model;
|
|
|
|
/*
|
|
* Abstract base class for all vehicles.
|
|
* This class DOES NOT implement Serviceable.
|
|
* Service behavior will be defined in concrete subclasses.
|
|
*/
|
|
|
|
public abstract class Vehicle {
|
|
|
|
private String brand;
|
|
private String model;
|
|
private int year;
|
|
private double mileage;
|
|
|
|
public Vehicle(String brand, String model, int year, double mileage) {
|
|
this.brand = brand;
|
|
this.model = model;
|
|
this.year = year;
|
|
this.mileage = mileage;
|
|
}
|
|
|
|
public String getBrand() {
|
|
|
|
return brand;
|
|
}
|
|
|
|
public String getModel() {
|
|
|
|
return model;
|
|
}
|
|
|
|
public int getYear() {
|
|
|
|
return year;
|
|
}
|
|
|
|
public double getMileage() {
|
|
|
|
return mileage;
|
|
}
|
|
|
|
|
|
public void addMileage(double km) {
|
|
if ( km < 0 ) {
|
|
System.out.println("Error: Mileage cannot be negative!");
|
|
return;
|
|
}
|
|
this.mileage += km;
|
|
}
|
|
|
|
public abstract String getEnergyType();
|
|
|
|
public void basicInfo() {
|
|
System.out.println(
|
|
year + " " + brand + " " + model +
|
|
" | Mileage: " + mileage +
|
|
" | Energy: " + getEnergyType()
|
|
);
|
|
}
|
|
|
|
public abstract void showDetails();
|
|
}
|