1700464770
在老爸看完成绩单后,告诉他我在全班排第38名,这个也是实情,为啥呢?有将近十个同学退学了!这个情况我是不会说的。不知道是不是当时第一次发成绩单时学校没有考虑清楚,没有写上总共有多少同学,排第几名,反正是被我钻了个空子。
1700464771
1700464772
那修饰是说完了,我们看看类图如何修改,如图17-3所示。
1700464773
1700464774
1700464775
1700464776
1700464777
图17-3 修饰成绩单
1700464778
1700464779
我想这是大家最容易想到的类图,通过直接增加了一个子类,重写report方法,很容易地解决了这个问题,是不是这样?是的,这确实是一个比较好的办法,我们来看具体的实现,如代码清单17-4所示。
1700464780
1700464781
代码清单17-4 修饰成绩单
1700464782
1700464783
public class SugarFouthGradeSchoolReport extends FouthGradeSchoolReport{
1700464784
1700464785
//首先要定义你要美化的方法,先给老爸说学校最高成绩
1700464786
1700464787
private void reportHighScore(){
1700464788
1700464789
System.out.println(“这次考试语文最高是75,数学是78,自然是80”);
1700464790
1700464791
}
1700464792
1700464793
//在老爸看完毕成绩单后,我再汇报学校的排名情况
1700464794
1700464795
private void reportSort(){
1700464796
1700464797
System.out.println(“我是排名第38名……”);
1700464798
1700464799
}
1700464800
1700464801
//由于汇报的内容已经发生变更,那所以要重写父类
1700464802
1700464803
@Override
1700464804
1700464805
public void report(){
1700464806
1700464807
this.reportHighScore();//先说最高成绩
1700464808
1700464809
super.report();//然后老爸看成绩单
1700464810
1700464811
this.reportSort();//然后告诉老爸学习学校排名
1700464812
1700464813
}
1700464814
1700464815
}
1700464816
1700464817
然后对Father类稍做修改就可以看到美化后的成绩单,如代码清单17-5所示。
1700464818
1700464819
代码清单17-5 老爸查看修饰后的成绩单
[
上一页 ]
[ :1.70046477e+09 ]
[
下一页 ]