打字猴:1.70046487e+09
1700464870 代码清单17-6 修饰的抽象类
1700464871
1700464872 public abstract class Decorator extends SchoolReport{
1700464873
1700464874 //首先我要知道是哪个成绩单
1700464875
1700464876 private SchoolReport sr;
1700464877
1700464878 //构造函数,传递成绩单过来
1700464879
1700464880 public Decorator(SchoolReport sr){
1700464881
1700464882 this.sr=sr;
1700464883
1700464884 }
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
[ 上一页 ]  [ :1.70046487e+09 ]  [ 下一页 ]