public interface Car {
public void run();
}
public class BMWCar implements Car {
@Override
public void run() {
System.out.println("BMW running!");
}
}
public class Client {
public static void main(String[] args) {
Car car = new BMWCar();
car.run();
}
}
//在输出‘BMW running’之前加上 hiahia ..
public class DecorateCar implements Car {
private Car car;
public DecorateCar(Car car){
this.car = car;
}
@Override
public void run() {
System.out.println("Hiahia, I am BMW!");
car.run();
}
}
public class Client {
public static void main(String[] args) {
Car car = new DecorateCar(new BMWCar());
car.run();
}
}