Bike.java
package fr.univtln.bruno.samples.java101.tp2.impl;
import fr.univtln.bruno.samples.java101.tp2.api.Drivable;
import fr.univtln.bruno.samples.java101.tp2.model.Vehicle;
/**
* Lightweight Vehicle implementation representing a bike.
*/
public class Bike extends Vehicle implements Drivable {
public Bike(String id) {
super(id);
}
/** {@inheritDoc} */
@Override
public String move() {
return "pedals";
}
/** {@inheritDoc} */
@Override
public String drive() {
return move();
}
/**
* Static category used to demonstrate method hiding.
* @return the category label for bikes.
*/
public static String category() {
return "Bike";
}
/**
* Covariant copy: returns a Bike instance.
* @return a new Bike with the same identifier.
*/
@Override
public Bike copy() {
return new Bike(this.id);
}
}