1700464735
1700464736
//把成绩单拿过来
1700464737
1700464738
SchoolReport sr=new FouthGradeSchoolReport();
1700464739
1700464740
//看成绩单
1700464741
1700464742
sr.report();
1700464743
1700464744
//签名?休想!
1700464745
1700464746
}
1700464747
1700464748
}
1700464749
1700464750
运行结果如下:
1700464751
1700464752
尊敬的XXX家长:
1700464753
1700464754
……
1700464755
1700464756
语文62数学65体育98自然63
1700464757
1700464758
……
1700464759
1700464760
家长签名:
1700464761
1700464762
就这成绩还要我签字?!老爸就开始找扫帚,我开始做准备:深呼吸,绷紧肌肉,提臀收腹。哈哈,幸运的是,这个不是当时的真实情况,我没有直接把成绩单交给老爸,而是在交给他之前做了点技术工作,我要把成绩单封装一下,封装分类两步来实现,如下所示。
1700464763
1700464764
❑汇报最高成绩
1700464765
1700464766
跟老爸说各个科目的最高分,语文最高是75,数学是78,自然是80,然后老爸觉的我的成绩与最高分数相差不多,考的还是不错的嘛!这个是实情,但是不知道是什么原因,反正期末考试都考得不怎么样,但是基本上都集中在70分以上,我这60多分基本上还是垫底的角色。
1700464767
1700464768
❑汇报排名情况
1700464769
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
[
上一页 ]
[ :1.700464735e+09 ]
[
下一页 ]