福建农林大学java实验三

福建农林大学java实验三

ID:9104811

大小:58.00 KB

页数:7页

时间:2018-04-17

福建农林大学java实验三_第1页
福建农林大学java实验三_第2页
福建农林大学java实验三_第3页
福建农林大学java实验三_第4页
福建农林大学java实验三_第5页
资源描述:

《福建农林大学java实验三》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验三多态性一实验目的1.理解类的继承的概念。2.理解引用类型的变量的赋值转换原则。3.理解多态概念,掌握方法的匹配调用原则。 4.理解抽象类与接口的使用。5.理解this和super的含义。6.理解访问控制符的使用二知识要点1.继承的概念Object类是所有类的父类。通过类的继承,父类的所有成员均将成为子类拥有的“财富”。但是能否通过子类对象直接访问这些成员则取决于访问权限设置。2.构造方法与继承关系构造方法不存在继承关系。子类通过调用父类的构造方法给父类的属性赋值。在子类的构造方法的第1行可以通过super去调用父类的构造方法。如果没有super调用,则默认调用父

2、类的无参构造方法。所以,在父类中编写构造方法通常均要提供无参构造方法。3.对象引用变量赋值原则可以将子类的对象引用赋值给父类引用变量。但将父类引用变量的值赋给子类引用变量时,必须进行强制转换。但运行程序时如果不能正确转换就会报错。4.多态性(1)同一类中的方法多态(方法重载):同一类中允许多个同名方法,通过参数的数量、类型的差异进行区分。(2)子类对父类方法的重新定义(方法重写):方法名、返回值和参数形态完全一致。(3)方法调用的匹配原则:首先查找是否有参数一致的方法,也就是精确匹配;如果没有,再检查实参是否能自动转换为形参类型,能转换也可以匹配调用,这种匹配称为转换

3、匹配。(4)动态绑定机制:动态绑定是一种调用对象方法的机制。在运行期间采用动态绑定意味着,虚拟机将调用对象实际类型所对应的方法。5.继承关系中对成员的访问由于继承关系的存在,一个对象的属性和方法中有自己新定义的,也有从父类继承的。子类能够对父类的属性和方法重新定义。一个对象查找其属性和方法时遵循“最近匹配原则”。(1)在子类中访问属性和方法时将优先查找自己定义的属性和方法。如果该成员在本类存在,则使用本类的,否则,按照继承层次的顺序到其父类查找。(2)this关键字特指本类对象引用。使用this访问成员则首先在本类中查找,如果没有,则到父类逐层向上找。(3)super

4、关键字特指访问父类对象的引用。使用super首先到直接父类查找匹配成员,如果未找到,再逐层向上到父类查找。6.抽象类(1)定义形式:abstractclass类名称{   成员变量;   方法(){……}    //定义一般方法   abstract方法();//定义抽象方法}  (2)在抽象类中可以包含一般方法和抽象方法。(3) 抽象类表示的是一个抽象概念,不能被实例化为对象。(4)继承抽象类的具体类必须将抽象类中抽象方法覆盖实现。7.接口(1)接口定义[public]interface接口名[extends父接口名列表] {   访问限定词常量名=常量值;//常量

5、声明   返回类型方法名(参数列表)[throw异常列表];//抽象方法声明}  l   接口只包括常量定义和抽象方法。l   接口具有继承性,一个接口还可以继承多个父接口,父接口间用逗号分隔。l 接口中所有属性的修饰符默认为publicstaticfinal,即静态常量。l 接口中所有方法的修饰符号默认为publicabstract,即抽象方法(2)接口实现(implements)接口定义了一套行为规范,一个类实现这个接口就要遵守接口中定义的规范,实际上就是要实现接口中定义的所有方法。l        一个类可以实现多个接口;l        类中实现接口的方法要加

6、public修饰,因为接口中定义的抽象方法默认为public。三实验内容1、多态在工资系统中的应用。【模板一】中给出一个根据雇员类型利用多态性完成每周工资单计算的程序,请将【代码一】到【代码六】替换为Java源代码,具体要求如下:(1)定义一个类Employee作为父类,该类有三个子类:Boss每星期发给他固定工资,而不计工作时间)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。(2)对于Boss类的工资计算的原则是:不计工作时间,每星期获得固定工资。(3)对于PieceWorker类的工资计算原则是:根据生

7、产的产品数量,每星期发放工资。(4)对于HourlyWorker类的工资计算原则是:根据工资时间,每星期发放工资。(5)Employee类中定义了一个方法earnings(),该方法没有实质性的工作;而在每个子类中都提供了恰当的earnings()方法的重写。(6)为了计算雇员的工资,main方法中仅使用雇员对象的一个超类引导并调用earings()方法【模板一】//Employee超类的定义classEmployee{privateStringname;publicEmployee(Stringname){this.name=name;}publi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。