JAVA实验报告 多态性 实验三.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA实验报告 多态性 实验三

福建农林大学计算机与信息学院实验报告 系: 专业:计算机科学与技术 年级: 10计升(4)班 姓名: 涂启标 学号: 102260013214 实验室号__514_____ 计算机号 30 实验时间: 指导教师签字: 成绩: 实验三 多态性 一 实验目的 1.理解类的继承的概念。 2.理解引用类型的变量的赋值转换原则。 3.理解多态概念,掌握方法的匹配调用原则。? 4.理解抽象类与接口的使用。 5.理解this和super的含义。 6.理解访问控制符的使用 二 知识要点 1.继承的概念 Object类是所有类的父类。 通过类的继承,父类的所有成员均将成为子类拥有的“财富”。但是能否通过子类对象直接访问这些成员则取决于访问权限设置。 2. 构造方法与继承关系 构造方法不存在继承关系。 子类通过调用父类的构造方法给父类的属性赋值。 在子类的构造方法的第1行可以通过super去调用父类的构造方法。如果没有super调用,则默认调用父类的无参构造方法。所以,在父类中编写构造方法通常均要提供无参构造方法。 3. 对象引用变量赋值原则 可以将子类的对象引用赋值给父类引用变量。 但将父类引用变量的值赋给子类引用变量时,必须进行强制转换。但运行程序时如果不能正确转换就会报错。 4. 多态性 (1) 同一类中的方法多态(方法重载):同一类中允许多个同名方法,通过参数的数量、类型的差异进行区分。 (2) 子类对父类方法的重新定义(方法重写):方法名、返回值和参数形态完全一致。 (3) 方法调用的匹配原则: 首先查找是否有参数一致的方法,也就是精确匹配;如果没有,再检查实参是否能自动转换为形参类型,能转换也可以匹配调用,这种匹配称为转换匹配。 (4) 动态绑定机制: 动态绑定是一种调用对象方法的机制。在运行期间采用动态绑定意味着,虚拟机将调用对象实际类型所对应的方法。 5. 继承关系中对成员的访问 由于继承关系的存在,一个对象的属性和方法中有自己新定义的,也有从父类继承的。子类能够对父类的属性和方法重新定义。 一个对象查找其属性和方法时遵循 “最近匹配原则”。 (1)在子类中访问属性和方法时将优先查找自己定义的属性和方法。如果该成员在本类存在,则使用本类的,否则,按照继承层次的顺序到其父类查找。 (2)this关键字特指本类对象引用。使用this访问成员则首先在本类中查找,如果没有,则到父类逐层向上找。 (3)super关键字特指访问父类对象的引用。使用super首先到直接父类查找匹配成员,如果未找到,再逐层向上到父类查找。 6.抽象类 (1)定义形式: abstract class 类名称 { ??? 成员变量; ??? 方法(){……}???? //定义一般方法 ??? abstract 方法();//定义抽象方法 }?? ()()? () ???? 接口只包括常量定义和抽象方法。 ???? 接口具有继承性,一个接口还可以继承多个父接口,父接口间用逗号分隔。 ?? 接口中所有属性的修饰符默认为 public static final,即静态常量。 ?? 接口中所有方法的修饰符号默认为 public abstract,即抽象方法 (2)接口实现(implements) 接口定义了一套行为规范,一个类实现这个接口就要遵守接口中定义的规范,实际上就是要实现接口中定义的所有方法。 ????????? 一个类可以实现多个接口; ????????? 类中实现接口的方法要加public修饰,因为接口中定义的抽象方法默认为public。 三 实验内容 多态在工资系统中的应用。给出一个根据雇员类型利用多态性完成工资单计算的程序定义一个类Employee作为每星期发给他固定工资,而不计工作时间)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。earnings(),该方法没有实质性的工作;而在每个子类中都提供了恰当的earnings()方法的重写。 为了计算雇员的工资,main方法中仅使用雇员对象的一个超类引导并调用earings()方法 1. class Employee { private String name; public Employee(String name) { this.name = name; } public String getName() { return name

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档