实验4 继承性和多态.doc

上传人:hw****26 文档编号:3100485 上传时间:2019-05-21 格式:DOC 页数:5 大小:69.50KB
下载 相关 举报
实验4 继承性和多态.doc_第1页
第1页 / 共5页
实验4 继承性和多态.doc_第2页
第2页 / 共5页
实验4 继承性和多态.doc_第3页
第3页 / 共5页
实验4 继承性和多态.doc_第4页
第4页 / 共5页
实验4 继承性和多态.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、实验四 继承性和多态一、实验目的:熟悉 JAVA 中的继承性和多态性。掌握子类的定义及用法,继承机制中的隐藏与覆盖。子类的构造方法的用法,对象的上转型对象,抽象类与抽象方法等。二、实验要求:1根据下面的要求,编写 Java 应用程序实现:编写程序模拟中国人、美国人是人、北京人是中国人。除主类外,程序中还有 4 个类:People、ChinaPeople、AmericanPeople 和 BeijingPeople 类。要求如下: People 类有权限是 protected 的 double 型成员变量 height 和 weight,以及 public void speakHello()、p

2、ublic void averageHeight()和 public void averageWeight()方法。 ChinaPeople 类是 People 的子类,新增了 public void chinaGongfu()方法。要求ChinaPeople 重写父类的 public void speakHello()、public void averageHeight()和 public void averageWeight()方法。 AmericanPeople 类是 People 的子类,新增 public void americanBoxing()方法。要求AmericanPeopl

3、e 重写父类的 public void speakHello()、public void averageHeight()和public void averageWeight()方法。 BeijingPeople 类是 ChinaPeople 的子类,新增 public void beijingOpera()方法。要求ChinaPeople 重写父类的 public void speakHello()、public void averageHeight()和 public void averageWeight()方法。People、ChinaPeople、AmericanPeople 和 Bei

4、jingPeople 类的 UML 图如下图所示:Peopleheight:doubleweight:doublespeakHello():voidaverageHeight():voidaverageWeight():voidChinaPeoplechinaGongfu():voidAmericanPeopleamericanBoxing():voidBeijingPeoplebeijingOpera():void2根据下面的描述,编写 Java 程序实现:假设银行 Bank 已经有了按整年 year 计算利息的一般方法,其中 year 只能取正整数。比如按整年计算的方法:double co

5、mputerInterest() interest=year*0.35*saveedMoney;return interest;建设银行 ConstructionBank 是 Bank 的子类,准备隐藏继承的成员变量 year,并重写计算利息的方法,即自己声明一个 double 型的 year 变量,比如,当 year 取值为 5.216 时,表示要计算 5 年零 216 天的利息,但希望首先按银行 Bank 的方法 computerInterest()计算出 5整年的利息,然后再自己计算 216 天的利息。那么,建设银行就必须把 5.216 的整数部分赋给隐藏的 year,并让 super

6、调用隐藏的、按整年计算利息的方法。要求 ConstructionBank 和 BankOfQingdao 类是 Bank 类的子类,ConstructionBank 和BankOfQingdao 都使用 super 调用隐藏的成员变量和方法。ConstructionBank、BankOfQingdao 和 Bank 类的 UML 图如下所示:注:整年利率:0.035 ,按天计算利率:0.0001功能扩展:参照建设银行或青岛银行,再编写一个商业银行,让程序输出 8000 元存在商业银行 8年零 236 天的利息。ConstructionBankyear:doublecomputerInteres

7、t():doubleBankOfQingdaoyear:doublecomputerInterest():doubleBanksavedMoney:intyear:intinterest:doublecomputerInterest():double3根据下面要求,编写一个 Java 应用程序:用类封装手机的基本属性和功能,要求手机即可以使用移动公司的 SIM 卡也可以使用联通公司 SIM 卡(可以使用任何公司提供的 SIM 卡) 。.设计抽象类:设计一个抽象类 SIM,该类有三个抽象方法:giveNumber()、setNumber()和 giveCorpName() .设计手机类:设计 M

8、obileTelephone,该类有 useSIM(SIM card)方法.各公司手机卡类:设计 SIMOfChinaMobile、SIMOfChinaUnicom 类各类之间的关系如下:编程定义各类,并在主类中进行测试。4根据下面要求,编写 Java 应用程序实现:要求有一个 abstract 类,类名为 Employee。Employee 的子类有YearWorker、MonthWorker 、WeekWorker。YearWorker 对象按年领取薪水, MonthWorker按月领取薪水,WeekWorker 按周领取薪水。Employee 类有一个 abstract 方法:publi

9、c abstract earnings();子类必须重写父类的 earnings()方法,给出各自领取报酬的具体方式。有一个 Company 类,该类用 Employee 对象数组作为成员,Employee 对象数组的元素可以是 YearWorker 对象的上转型对象、 MonthWorker 对象的上转型对象或 WeekWorker 对象的上转型对象。程序能输出 Company 对象一年需要支付的薪水总额。MobileTelephonecard:SIMuseSIM(SIM):voidshowMess():voidSIMsetNumber(String):voidgiveNumber():St

10、ringgiveCorepName():StringSIMOfChinaMobilenumber:StringsetNumber(String):voidgiveNumber():StringgiveCorepName():StringSIMOfChinaUnicomnumber:StringsetNumber(String):voidgiveNumber():StringgiveCorepName():String5对于各种几何图形,一般都有求图形的面积、周长等方法。现在有圆、矩形和三角形三种图形,要求通过类来实现求三种图形的面积。问题分析:三种图形都有相同的方法,因此可以抽象出一个抽象类:

11、图形类,该类有抽象的求面积方法。然后由该抽象类生成 3 个子类:圆类、矩形类、三角形类。在主类中实现求各类图形的面积。各类之间的关系如下:Figurearea():doubleRectanglelength:doublewidth:doublearea():doubleCircler:doublearea():double在子类中,定义构造方法,实现对子类成员变量的初始化。编程定义各类,并在主类中进行测试。Trianglehigh:doublebottom:doublearea():double6.设计一个动物声音“模拟器” ,希望模拟器可以模拟许多动物的叫声,要求如下: 编写抽象类 Anim

12、alAnimal 抽象类有 2 个抽象方法 cry()和 getAnimalName(),即要求各种具体的动物给出自己的叫声和种类名称。 编写模拟器类 Simulator该类有一个 playSound(Animal animal)方法,该方法的参数是 Animal 类型。即参数animal 可以调用 Animal 的子类重写的 cry()方法播放具体动物的声音,调用子类重写的getAnimalName()方法显示动物种类的名称。 编写 Animal 类的子类:Dog 和 Cat 类各类的 UML 图如下所示:在各子类中通过构造方法实现对子类成员变量的初始化。 编写主类 Application(

13、用户程序)在主类 Application 的 main 方法中至少包含如下代码。Simulator simulator = new Simulator();simulator.playSound(new Dog(“藏獒”);simulator.playSound(new Cat(“加菲猫”);SimulatorplaySound(Animal):voidAnimalcry():voidgetAnimalName():StringDogString name;cry():voidgetAnimalName():StringCatString name;cry():voidgetAnimalName():String

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。