class Client {
public static void main(String[] args) {
Car car=new Car();
Vehicle bicycle = new BicycleAdapter(new Bicycle() );
drive(car);
drive(bicycle);
}
public static void drive(Vehicle vehicle){
vehicle.move();
vehicle.brake();
vehicle.backward();
}
}
interface Vehicle {
void move();
void brake();
void backward();
}
public class Car implements Vehicle{
@Override
public void move(){
System.out.println("Car is moving forward");
}
@Override
public void brake(){
System.out.println("Car is stopped");
}
@Override
public void backward(){
System.out.println("Car is moving backward");
}
}
public class Bicycle{
public Bicycle(){}
public void pedal(){
System.out.println("Bicycle is moving forword");
}
public void pedalBackward(){
System.out.println("Bicycle is stopped");
}
}
public class BicycleAdapter implements Vehicle{
private Bicycle bicycle ;
public BicycleAdapter(Bicycle bicycle){
this.bicycle=bicycle;
}
@Override
public void move(){
bicycle.pedal();
}
@Override
public void brake(){
bicycle.pedalBackward();
}
@Override
public void backward(){
System.out.println("NotSupportedException");
}
}