import java.util.*;
interface Vehicle {
//only method is defined here not body;
//all are abstract method by default;
void speedUp(int n);
void changeGear(int n);
void applyBrakes(int n);
}
class Bicycle implements Vehicle {
int speed;
int gear;
//method override
public void changeGear(int newGear) {
gear = newGear;
}
//method override;
public void speedUp(int accelrate) {
speed += accelrate;
}
//method override;
public void applyBrakes(int deaccelrate){
speed -= deaccelrate;
}
public void finalState()
{
System.out.println("speed: " + speed
+ " gear: " + gear);
}
}
class Bike implements Vehicle {
int speed;
int gear;
//method override;
public void changeGear(int newGear) {
gear = newGear;
}
//method override;
public void speedUp(int accelrate) {
speed += accelrate;
}
//method override;
public void applyBrakes(int deaccelrate) {
speed -= deaccelrate;
}
public void finalState()
{
System.out.println("speed: " + speed
+ " gear: " + gear);
}
}
public class TestInterface {
public static void main(String args[]) {
Bicycle b = new Bicycle();
b.changeGear(3);
b.speedUp(30);
b.applyBrakes(7);
System.out.println("The final State of bycycle is :");
b.finalState();
Bike b1 = new Bike();
b1.changeGear(5);
b1.speedUp(150);
b1.applyBrakes(12);
System.out.println("The final State of bike is :");
b1.finalState();
}
}