装饰模式:动态的将责任附加到对象上。(有点递归的意思)使用时传递参数要小心,不要传递自身
//定义抽象基类
public abstract class BaseClass{
public abstract int calculate();
}
//子类使用基类对象作为构造方法参数,并在某些方法中对其进行"装饰"
public class ExtBaseClass extends BaseClass{
private BaseClass original;
public ExtBaseClass(BaseClass bc){
original=bc;
}
@Override
public int calculate(){
return (int)(original.calculate()*0.95);
}
}