Files
WS-03-advanced-oop/src/main/java/org/model/Vehicle.java
T
2026-04-27 05:36:12 +03:30

66 lines
1.3 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 this.brand;
}
public String getModel() {
return this.model;
}
public int getYear() {
return this.year;
}
public double getMileage() {
return this.mileage;
}
// If km is negative → print error
// Otherwise increase mileage
public void addMileage(double km) {
if(km<0) {
System.out.print("km cannot be negative");
}
else {
this.mileage += km;
}
}
public abstract String getEnergyType();
public void basicInfo() {
System.out.println(
year + " " + brand + " " + model +
" | Mileage: " + mileage +
" | Energy: " + getEnergyType()
);
}
public abstract void showDetails();
}