打字猴:1.700464885e+09
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 ]  [ 下一页 ]