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