




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 熟悉多态性的两种形式:1) 方法重载overload:在一个Math类中,定义多个同名方法Add,分别用来计算2个int、float、double型数之和,并写一个测试程序完成测试。2) 重写overridea) 定义一个父类Sale,提供2个方法:getSalePrice 、setSalePrice,然后再定义一个子类DiscountSale,重写相关方法。写一个测试程序,根据不同情况,选择不同的销售策略,验证多态性。b) 定义一个父类Game,提供方法Play,然后再定义几个子类Basketball,Football,分别重写Play方法,然后写一个测试程序,验证多态性。2 定义一个抽象父类Game,抽象方法Play、getGameName,然后再定义2个子类Basketball,Football,分别重写抽象方法,然后写一个通用中间类,只需要一个方法。用来调用各子类的以上方法。最后,写一个测试程序,通过通用中间类验证多态性。(指出通用中间类中的关键点是什么?)3 在题2的基础上,若要增加一个新的子类Tennis,实现扩展功能,如何去做?(注意:不可改变框架中的任何类 测试程序除外) - 总结关键点有哪些?4 针对题2进行改写。定义一个接口Game,实现以上2,3题的内容。5 将书本中例6.1、6.2、6.3进行练习,理解相关使用规则。6 自定义一个异常类:定义一个BankAccount类,其中方法(取钱):withdraw,当取的钱大于余额balance时,捕获异常。并写出测试程序验证。1 熟悉多态性的两种形式:1) 方法重载overload:在一个MyMath类中,定义多个同名方法Add,分别用来计算2个int、float、double型数之和,并写一个测试程序完成测试。 package four.exercise.java;/* 1)方法重载overload:在一个MyMath类中,定义多个同名方法Add, 分别用来计算2个int、float、double型数之和, 并写一个测试程序完成测试。 */public class MyMath int Add(int a, int b)return (a + b)*10;float Add(float a, float b)return (a + b)*20;double Add(double a, double b)return (a + b)*30;/测试代码 用来验证不同Add方法的调用(传入参数的类型不同,选取的Add方法不同)public static void main(String args)MyMath mm = new MyMath();int result1 = mm.Add(3, 5);float result2 = mm.Add(3.0f, 5.0f);double result3 = mm.Add(3.0, 5.0);System.out.println(result1 = + result1);System.out.println(result2 = + result2);System.out.println(result3 = + result3);2) 重写overridea) 定义一个父类Sale,提供2个方法:getSalePrice 、setSalePrice,然后再定义一个子类DiscountSale,重写相关方法。写一个测试程序,根据不同情况,选择不同的销售策略,验证多态性。package four.exercise.java;/* * a)定义一个父类Sale,提供2个方法:getSalePrice 、setSalePrice, * 然后再定义一个子类DiscountSale,重写相关方法。 * 写一个测试程序,根据不同情况,选择不同的销售策略,验证多态性。 * */class Sale String name=; /销售活动名称:圣诞节促销、正常销售、情人节促销等等String goodsName=; /某个商品的名称double salePrice=0.0; /某个商品的销售价格/默认构造方法 - 为了子类的需要Sale()/构造方法 - 创建对象时,即初始化销售活动名称、商品名称、销售价格Sale(String name,String goodsName, double price) = name;this.goodsName = goodsName;this.salePrice = price;/设置销售活动名称void setSaleName(String name) = name;/获取销售活动名称String getSaleName()return name;/设置商品名称void setGoodsName(String goodsName)this.goodsName = goodsName;/获取商品名称String getGoodsName()return goodsName;/获取销售价格double getSalePrice()return salePrice;/设置其销售价格void setSalePrice(double price)salePrice = price;void OutMessage()System.out.println(getSaleName() + 期间, 商品: + getGoodsName() + 的价格是: + getSalePrice();class DiscountSale extends Saledouble discount=1.0;double getSalePrice()return salePrice*discount;void setSalePrice(double price)salePrice = price;void setDiscount(double discount)this.discount = discount;public class SaleDemopublic static void main(String args)/测试父类 SaleSale sale = new Sale(正常销售, T恤, 100.0);sale.OutMessage();sale.setSaleName(圣诞节促销);sale.setSalePrice(80.0);sale.OutMessage();/测试子类DiscountSaleDiscountSale ds = new DiscountSale();ds.setSaleName(情人节促销);ds.setGoodsName(牛仔裤);ds.setSalePrice(120.0); /不打折时的价格ds.OutMessage();ds.setDiscount(0.6); /打折:6折ds.OutMessage();b) 定义一个父类Game,提供方法Play,然后再定义几个子类Basketball,Football,分别重写Play方法,然后写一个测试程序,验证多态性。/*b)定义一个父类Game,提供方法Play,然后再定义几个子类Basketball,Football,分别重写Play方法,然后写一个测试程序,验证多态性。*/package four.exercise.java;class Gamevoid play()class Basketball extends Gamevoid play()System.out.println(现在开始打篮球!);class Football extends Gamevoid play()System.out.println(现在开始踢足球!);class Tennis extends Gamevoid play()System.out.println(现在开始打网球!);/测试程序public class GameDemo public static void main(String args)Game game;game = new Basketball();game.play();game = new Football();game.play();game = new Tennis();game.play();2 定义一个抽象父类Game,抽象方法play、getGameName,然后再定义2个子类Basketball,Football,分别重写抽象方法,然后写一个通用中间类,只需要一个方法。用来调用各子类的以上方法。最后,写一个测试程序,通过通用中间类验证多态性。(指出通用中间类中的关键点是什么?)通用中间类中的关键点是:方法的参数中,用抽象类来定义变量,这样,可以确保传入任意子类对象。/*定义一个抽象父类Game,抽象方法play、getGameName,然后再定义2个子类Basketball,Football, 分别重写抽象方法,然后写一个通用中间类,只需要一个方法。用来调用各子类的以上方法。 最后,写一个测试程序,通过通用中间类验证多态性。(指出通用中间类中的关键点是什么?) */package AbstractGame.four.exercise.java;abstract class Gamepublic abstract void play();public abstract String getGameName();class Basketball extends GameString gameName;Basketball(String name)gameName = name;public void play()System.out.println(现在开始打篮球!);public String getGameName()return gameName;class Football extends GameString gameName;Football(String name)gameName = name;public void play()System.out.println(现在开始踢足球!);public String getGameName()return gameName;/ 中间类 - 通过中间类,接收参数为Game类的对象或Game类的子类对象,从而调用不同子类的play方法class MiddleClassvoid callPlay(Game game)System.out.print(game.getGameName() + 运动时间:);game.play();/测试程序public class AbstractGameDemo public static void main(String args)Game game;MiddleClass mc = new MiddleClass();game = new Basketball(篮球);mc.callPlay(game);game = new Football(足球);mc.callPlay(game);3 在题2的基础上,若要增加一个新的子类Tennis,实现扩展功能,如何去做?(注意:不可改变框架中的任何类 测试程序除外) - 总结关键点有哪些?仿照Football类增加一个Tennis类(微小不同之处稍作调整)。然后在AbstractGameDemo 类中,增加2行测试代码:game = new Tennis(网球);mc.callPlay(game);原有的类:Game、Basketball、Football、MiddleClass均不用做任何修改。关键点:1)Game类作为抽象父类,Tennis子类继承于它;2)中间类MiddleClass中,方法中的参数用抽象类定义 可接收多个子类;3)使用上转型对象来实现以上要求。4 针对题2进行改写。定义一个接口Game,实现以上2,3题的内容。在以上基础上,Game类定义为接口,各子类实现该接口;另外MiddleClass类的方法参数中,用接口定义参数变量;main方法中,用接口定义变量 采用接口回调完成以上功能。5 将书本中例6.1、6.2、6.3进行练习,理解相关使用规则。略。6 自定义一个异常类:定义一个BankAccount类,其中方法(取钱):withdraw,当取的钱大于余额balance时,捕获异常。并写出测试程序验证。/*自定义一个异常类:定义一个BankAccount类,其中方法(取钱): * withdraw,当取的钱大于余额balance时,捕获异常。并写出测试程序验证。 */package Exception.four.exercise.java;/余额不足异常类class LessBalanceException extends Exception/* * */private static final long serialVersionUID = 1L;String message;public LessBalanceException(double money)message = 您想取钱 + money + ,但是您的账户中的余额不足! ; public String toString()return message;class BankAccountprivate double moneyWithdraw=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 抵押车买卖合同7篇
- 北京房屋个人装修合同2篇
- 合同协议-装饰公司设计合同2篇
- 新解读《GB-T 31095-2014地震情况下的电梯要求》
- 新解读《GB-T 31149-2014汽车物流服务评价指标》
- 新解读《GB-T 31209-2014绿色制造 低温冷风切削 技术要求》
- 工地吊篮销售合同范本
- 房屋代理租赁合同范本
- 商业用地出让合同范本
- 公伤补偿合同范本
- 教科版四年级上册科学全册教案
- 图形动画毕业设计
- 工会劳动竞赛课件
- 2025-2026学年苏教版小学数学五年级上册教学计划及进度表
- 2025年建筑工程-安全员C证-安全员(C证·上海)历年参考题库典型考点含答案解析
- 光伏项目施工组织设计方案
- 2025政府采购评审专家入库题库与答案
- 仪表安全知识培训课件
- 2025年三级老年人能力评估师考试题库(附答案)
- 婴幼儿营养与喂养理论知识考核试题及答案
- 工程设计图纸技术交底
评论
0/150
提交评论