1700464885
1700464886
//成绩单还是要被看到的
1700464887
1700464888
public void report(){
1700464889
1700464890
this.sr.report();
1700464891
1700464892
}
1700464893
1700464894
//看完还是要签名的
1700464895
1700464896
public void sign(String name){
1700464897
1700464898
this.sr.sign(name);
1700464899
1700464900
}
1700464901
1700464902
}
1700464903
1700464904
看到没,装饰类还是把动作的执行委托给需要装饰的对象,Decorator抽象类的目的很简单,就是要让子类来封装SchoolReport的子类,怎么封装?重写report方法!先看HighScoreDecorator实现类,如代码清单17-7所示。
1700464905
1700464906
代码清单17-7 最高成绩修饰
1700464907
1700464908
public class HighScoreDecorator extends Decorator{
1700464909
1700464910
//构造函数
1700464911
1700464912
public HighScoreDecorator(SchoolReport sr){
1700464913
1700464914
super(sr);
1700464915
1700464916
}
1700464917
1700464918
//我要汇报最高成绩
1700464919
1700464920
private void reportHighScore(){
1700464921
1700464922
System.out.println(“这次考试语文最高是75,数学是78,自然是80”);
1700464923
1700464924
}
1700464925
1700464926
//我要在老爸看成绩单前告诉他最高成绩,否则等他一看,就抡起扫帚揍我,我哪里还有机会说啊
1700464927
1700464928
@Override
1700464929
1700464930
public void report(){
1700464931
1700464932
this.reportHighScore();
1700464933
1700464934
super.report();
[
上一页 ]
[ :1.700464885e+09 ]
[
下一页 ]