第二次实验课总结

      本次实验重点是模块化Java程序的构造机制分析,要求大家能够使用继承、多态和抽象机制来构造结构灵活、具备一定弹性和扩展性的面向对象程序,理解接口和多态的概念,掌握方法重写、方法重载及类型转换的多态实现方法,并通过程序调试理解继承、多态和抽象机制。

第1题程序中存在类型转换的错误,具体包括:

1.Student的构造方法必须显示调用父类的构造方法

2.Teacher类重写Person类的register方法不能从public转为private

3.person[0] 默认的类型是student的父类person, 虽然构造时是按照student来构造的,但无法调用子类的方法updateAge(),解决方法进行类型转换,将Person[0].updateAge(23)更改为((Student) person[0]).updateAge(23);后即可正常地使用子类的方法。

4.将person[1]从上往下进行了强制类型转换有可能是不安全的,即当子类具有父类不具有的成员或方法时,转换便会失败。解决办法在Student类中添加和父类相似的构造函数,并调用父类的构造函数来初始化。

5.Teacher类没有显式地声明构造方法,而测试文件中使用了,导致person[2]没有找到与用例匹配的构造函数,需要在Teacher类中添加相应的构造函数,进行类似的处理。

6.Person[3]从上往下强制类型转换失败,解决方法同问题4。

第2题从题目的需求陈述中可以看出求四类职员的有着大量共同的属性和方法,因此这道题的答题要点如下:

1. 首先大家需要归纳共有的属性和方法,写在父类Employee中,四类职员分别继承Employee类。

2. 对报销这个行为,不同类别的职员有不同的具体操作,可以考虑使用接口。当然,如果你直接使用继承也是可以实现的。

3. 测试程序在写的时候需要覆盖到题目要求的各个分支。

posted @ 2018-04-09 16:08  Shirley_Sun  阅读(268)  评论(0编辑  收藏  举报