代码如下:
public class Test {
public static void main(String[] args) throws Exception{
Lamp lamp = new Lamp(new RedBulb());
lamp.on();
lamp.setB(new GreenBulb());
lamp.on();
}
}
class Lamp{
private Bulb b;
public Lamp(Bulb b){
this.b = b;
}
public void on(){
b.light();
}
public void setB(Bulb b){
this.b = b;
}
}
interface Bulb{
void light();
}
class RedBulb implements Bulb{
@Override
public void light() {
System.out.println("Red light.");
}
}
class GreenBulb implements Bulb{
@Override
public void light() {
System.out.println("Green light.");
}
}